To avoid adding a new match revision icmp type/code are stored in the sport/dport area.
Showing the changes to include (1 of 2 files). Show all
Unified · Split
| @@ -18,8 +18,11 @@ · 17 unmodified lines | ||
| 18 | 18 | #define EBT_IP6_PROTO 0x08 |
| 19 | 19 | #define EBT_IP6_SPORT 0x10 |
| 20 | 20 | #define EBT_IP6_DPORT 0x20 |
| 21 | +#define EBT_IP6_ICMP6 0x40 | |
| 22 | + | |
| 21 | 23 | #define EBT_IP6_MASK (EBT_IP6_SOURCE | EBT_IP6_DEST | EBT_IP6_TCLASS |\ |
| 22 | − EBT_IP6_PROTO | EBT_IP6_SPORT | EBT_IP6_DPORT) | |
| 24 | + EBT_IP6_PROTO | EBT_IP6_SPORT | EBT_IP6_DPORT | \ | |
| 25 | + EBT_IP6_ICMP6) | |
| 23 | 26 | #define EBT_IP6_MATCH "ip6" |
| 24 | 27 | |
| 25 | 28 | /* the same values are used for the invflags */ |
| @@ -32,8 +35,14 @@ struct ebt_ip6_info { · 6 unmodified lines | ||
| 32 | 35 | uint8_t protocol; |
| 33 | 36 | uint8_t bitmask; |
| 34 | 37 | uint8_t invflags; |
| 35 | − uint16_t sport[2]; | |
| 36 | − uint16_t dport[2]; | |
| 38 | + union { | |
| 39 | + uint16_t sport[2]; | |
| 40 | + uint8_t icmpv6_type[2]; | |
| 41 | + }; | |
| 42 | + union { | |
| 43 | + uint16_t dport[2]; | |
| 44 | + uint8_t icmpv6_code[2]; | |
| 45 | + }; | |
| 37 | 46 | }; |
| 38 | 47 | |
| 39 | 48 | #endif |