flow_dissector: Dissect tos and ttl from the tunnel info
Add dissection of the tos and ttl from the ip tunnel headers fields in case a match is needed on them. Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Reviewed-by: Roi Dayan <roid@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
07a557f47d
commit
5544adb970
|
@ -207,7 +207,7 @@ enum flow_dissector_key_id {
|
|||
FLOW_DISSECTOR_KEY_TCP, /* struct flow_dissector_key_tcp */
|
||||
FLOW_DISSECTOR_KEY_IP, /* struct flow_dissector_key_ip */
|
||||
FLOW_DISSECTOR_KEY_CVLAN, /* struct flow_dissector_key_flow_vlan */
|
||||
|
||||
FLOW_DISSECTOR_KEY_ENC_IP, /* struct flow_dissector_key_ip */
|
||||
FLOW_DISSECTOR_KEY_MAX,
|
||||
};
|
||||
|
||||
|
|
|
@ -152,7 +152,9 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
|||
!dissector_uses_key(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_CONTROL) &&
|
||||
!dissector_uses_key(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_PORTS))
|
||||
FLOW_DISSECTOR_KEY_ENC_PORTS) &&
|
||||
!dissector_uses_key(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_IP))
|
||||
return;
|
||||
|
||||
info = skb_tunnel_info(skb);
|
||||
|
@ -212,6 +214,16 @@ skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
|
|||
tp->src = key->tp_src;
|
||||
tp->dst = key->tp_dst;
|
||||
}
|
||||
|
||||
if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_ENC_IP)) {
|
||||
struct flow_dissector_key_ip *ip;
|
||||
|
||||
ip = skb_flow_dissector_target(flow_dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_IP,
|
||||
target_container);
|
||||
ip->tos = key->tos;
|
||||
ip->ttl = key->ttl;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(skb_flow_dissect_tunnel_info);
|
||||
|
||||
|
|
Loading…
Reference in New Issue