This patch introduces a flow-based filter. So far, the very essential packet fields are supported. This patch is only the first step. There is a lot of potential performance improvements possible to implement. Also a lot of features are missing now. They will be addressed in follow-up patches.
Showing the changes to include/uapi (1 of 4 files). Show all
Unified · Split
| @@ -409,6 +409,36 @@ enum { · 408 unmodified lines | |||
| 409 | 409 | ||
| 410 | #define TCA_BPF_MAX (__TCA_BPF_MAX - 1) | 410 | #define TCA_BPF_MAX (__TCA_BPF_MAX - 1) |
| 411 | 411 | ||
| 412 | /* Flower classifier */ | ||
| 413 | |||
| 414 | enum { | ||
| 415 | TCA_FLOWER_UNSPEC, | ||
| 416 | TCA_FLOWER_CLASSID, | ||
| 417 | TCA_FLOWER_INDEV, | ||
| 418 | TCA_FLOWER_ACT, | ||
| 419 | TCA_FLOWER_KEY_ETH_DST, /* ETH_ALEN */ | ||
| 420 | TCA_FLOWER_KEY_ETH_DST_MASK, /* ETH_ALEN */ | ||
| 421 | TCA_FLOWER_KEY_ETH_SRC, /* ETH_ALEN */ | ||
| 422 | TCA_FLOWER_KEY_ETH_SRC_MASK, /* ETH_ALEN */ | ||
| 423 | TCA_FLOWER_KEY_ETH_TYPE, /* be16 */ | ||
| 424 | TCA_FLOWER_KEY_IP_PROTO, /* u8 */ | ||
| 425 | TCA_FLOWER_KEY_IPV4_SRC, /* be32 */ | ||
| 426 | TCA_FLOWER_KEY_IPV4_SRC_MASK, /* be32 */ | ||
| 427 | TCA_FLOWER_KEY_IPV4_DST, /* be32 */ | ||
| 428 | TCA_FLOWER_KEY_IPV4_DST_MASK, /* be32 */ | ||
| 429 | TCA_FLOWER_KEY_IPV6_SRC, /* struct in6_addr */ | ||
| 430 | TCA_FLOWER_KEY_IPV6_SRC_MASK, /* struct in6_addr */ | ||
| 431 | TCA_FLOWER_KEY_IPV6_DST, /* struct in6_addr */ | ||
| 432 | TCA_FLOWER_KEY_IPV6_DST_MASK, /* struct in6_addr */ | ||
| 433 | TCA_FLOWER_KEY_TCP_SRC, /* be16 */ | ||
| 434 | TCA_FLOWER_KEY_TCP_DST, /* be16 */ | ||
| 435 | TCA_FLOWER_KEY_UDP_SRC, /* be16 */ | ||
| 436 | TCA_FLOWER_KEY_UDP_DST, /* be16 */ | ||
| 437 | __TCA_FLOWER_MAX, | ||
| 438 | }; | ||
| 439 | |||
| 440 | #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) | ||
| 441 | |||
| 412 | /* Extended Matches */ | 442 | /* Extended Matches */ |
| 413 | 443 | ||
| 414 | struct tcf_ematch_tree_hdr { | 444 | struct tcf_ematch_tree_hdr { |