net/sched: act_ct: Instantiate flow table entry actions
NF flow table API associate 5-tuple rule with an action list by calling the flow table type action() CB to fill the rule's actions. In action CB of act_ct, populate the ct offload entry actions with a new ct_metadata action. Initialize the ct_metadata with the ct mark, label and zone information. If ct nat was performed, then also append the relevant packet mangle actions (e.g. ipv4/ipv6/tcp/udp header rewrites). Drivers that offload the ft entries may match on the 5-tuple and perform the action list. Signed-off-by: Paul Blakey <paulb@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Reviewed-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
978703f425
commit
9c26ba9b1f
@@ -16,6 +16,29 @@ struct nf_flow_rule;
|
||||
struct flow_offload;
|
||||
enum flow_offload_tuple_dir;
|
||||
|
||||
struct nf_flow_key {
|
||||
struct flow_dissector_key_meta meta;
|
||||
struct flow_dissector_key_control control;
|
||||
struct flow_dissector_key_basic basic;
|
||||
union {
|
||||
struct flow_dissector_key_ipv4_addrs ipv4;
|
||||
struct flow_dissector_key_ipv6_addrs ipv6;
|
||||
};
|
||||
struct flow_dissector_key_tcp tcp;
|
||||
struct flow_dissector_key_ports tp;
|
||||
} __aligned(BITS_PER_LONG / 8); /* Ensure that we can do comparisons as longs. */
|
||||
|
||||
struct nf_flow_match {
|
||||
struct flow_dissector dissector;
|
||||
struct nf_flow_key key;
|
||||
struct nf_flow_key mask;
|
||||
};
|
||||
|
||||
struct nf_flow_rule {
|
||||
struct nf_flow_match match;
|
||||
struct flow_rule *rule;
|
||||
};
|
||||
|
||||
struct nf_flowtable_type {
|
||||
struct list_head list;
|
||||
int family;
|
||||
|
||||
Reference in New Issue
Block a user