Loading net/core/flow.c +0 −36 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include <linux/cpumask.h> #include <linux/mutex.h> #include <net/flow.h> #include <net/flow_dissector.h> #include <linux/atomic.h> #include <linux/security.h> #include <net/net_namespace.h> Loading Loading @@ -510,38 +509,3 @@ void flow_cache_fini(struct net *net) fc->percpu = NULL; } EXPORT_SYMBOL(flow_cache_fini); __u32 __get_hash_from_flowi6(struct flowi6 *fl6, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, sizeof(keys->addrs.v6addrs.src)); memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, sizeof(keys->addrs.v6addrs.dst)); keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; keys->ports.src = fl6->fl6_sport; keys->ports.dst = fl6->fl6_dport; keys->keyid.keyid = fl6->fl6_gre_key; keys->tags.flow_label = (__force u32)fl6->flowlabel; keys->basic.ip_proto = fl6->flowi6_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi6); __u32 __get_hash_from_flowi4(struct flowi4 *fl4, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); keys->addrs.v4addrs.src = fl4->saddr; keys->addrs.v4addrs.dst = fl4->daddr; keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; keys->ports.src = fl4->fl4_sport; keys->ports.dst = fl4->fl4_dport; keys->keyid.keyid = fl4->fl4_gre_key; keys->basic.ip_proto = fl4->flowi4_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi4); net/core/flow_dissector.c +35 −0 Original line number Diff line number Diff line Loading @@ -787,6 +787,41 @@ u32 skb_get_poff(const struct sk_buff *skb) return __skb_get_poff(skb, skb->data, &keys, skb_headlen(skb)); } __u32 __get_hash_from_flowi6(struct flowi6 *fl6, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, sizeof(keys->addrs.v6addrs.src)); memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, sizeof(keys->addrs.v6addrs.dst)); keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; keys->ports.src = fl6->fl6_sport; keys->ports.dst = fl6->fl6_dport; keys->keyid.keyid = fl6->fl6_gre_key; keys->tags.flow_label = (__force u32)fl6->flowlabel; keys->basic.ip_proto = fl6->flowi6_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi6); __u32 __get_hash_from_flowi4(struct flowi4 *fl4, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); keys->addrs.v4addrs.src = fl4->saddr; keys->addrs.v4addrs.dst = fl4->daddr; keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; keys->ports.src = fl4->fl4_sport; keys->ports.dst = fl4->fl4_dport; keys->keyid.keyid = fl4->fl4_gre_key; keys->basic.ip_proto = fl4->flowi4_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi4); static const struct flow_dissector_key flow_keys_dissector_keys[] = { { .key_id = FLOW_DISSECTOR_KEY_CONTROL, Loading Loading
net/core/flow.c +0 −36 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include <linux/cpumask.h> #include <linux/mutex.h> #include <net/flow.h> #include <net/flow_dissector.h> #include <linux/atomic.h> #include <linux/security.h> #include <net/net_namespace.h> Loading Loading @@ -510,38 +509,3 @@ void flow_cache_fini(struct net *net) fc->percpu = NULL; } EXPORT_SYMBOL(flow_cache_fini); __u32 __get_hash_from_flowi6(struct flowi6 *fl6, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, sizeof(keys->addrs.v6addrs.src)); memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, sizeof(keys->addrs.v6addrs.dst)); keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; keys->ports.src = fl6->fl6_sport; keys->ports.dst = fl6->fl6_dport; keys->keyid.keyid = fl6->fl6_gre_key; keys->tags.flow_label = (__force u32)fl6->flowlabel; keys->basic.ip_proto = fl6->flowi6_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi6); __u32 __get_hash_from_flowi4(struct flowi4 *fl4, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); keys->addrs.v4addrs.src = fl4->saddr; keys->addrs.v4addrs.dst = fl4->daddr; keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; keys->ports.src = fl4->fl4_sport; keys->ports.dst = fl4->fl4_dport; keys->keyid.keyid = fl4->fl4_gre_key; keys->basic.ip_proto = fl4->flowi4_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi4);
net/core/flow_dissector.c +35 −0 Original line number Diff line number Diff line Loading @@ -787,6 +787,41 @@ u32 skb_get_poff(const struct sk_buff *skb) return __skb_get_poff(skb, skb->data, &keys, skb_headlen(skb)); } __u32 __get_hash_from_flowi6(struct flowi6 *fl6, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, sizeof(keys->addrs.v6addrs.src)); memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, sizeof(keys->addrs.v6addrs.dst)); keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; keys->ports.src = fl6->fl6_sport; keys->ports.dst = fl6->fl6_dport; keys->keyid.keyid = fl6->fl6_gre_key; keys->tags.flow_label = (__force u32)fl6->flowlabel; keys->basic.ip_proto = fl6->flowi6_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi6); __u32 __get_hash_from_flowi4(struct flowi4 *fl4, struct flow_keys *keys) { memset(keys, 0, sizeof(*keys)); keys->addrs.v4addrs.src = fl4->saddr; keys->addrs.v4addrs.dst = fl4->daddr; keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; keys->ports.src = fl4->fl4_sport; keys->ports.dst = fl4->fl4_dport; keys->keyid.keyid = fl4->fl4_gre_key; keys->basic.ip_proto = fl4->flowi4_proto; return flow_hash_from_keys(keys); } EXPORT_SYMBOL(__get_hash_from_flowi4); static const struct flow_dissector_key flow_keys_dissector_keys[] = { { .key_id = FLOW_DISSECTOR_KEY_CONTROL, Loading