mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
openvswitch: add tunnel protocol to sw_flow_key
Store tunnel protocol (AF_INET or AF_INET6) in sw_flow_key. This field now also acts as an indicator whether the flow contains tunnel data (this was previously indicated by tun_key.u.ipv4.dst being set but with IPv6 addresses in an union with IPv4 ones this won't work anymore). The new field was added to a hole in sw_flow_key. Signed-off-by: Jiri Benc <jbenc@redhat.com> Acked-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4917a1548f
commit
00a93babd0
4 changed files with 12 additions and 5 deletions
|
@ -698,8 +698,7 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
|
|||
{
|
||||
/* Extract metadata from packet. */
|
||||
if (tun_info) {
|
||||
if (ip_tunnel_info_af(tun_info) != AF_INET)
|
||||
return -EINVAL;
|
||||
key->tun_proto = ip_tunnel_info_af(tun_info);
|
||||
memcpy(&key->tun_key, &tun_info->key, sizeof(key->tun_key));
|
||||
|
||||
if (tun_info->options_len) {
|
||||
|
@ -714,6 +713,7 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
|
|||
key->tun_opts_len = 0;
|
||||
}
|
||||
} else {
|
||||
key->tun_proto = 0;
|
||||
key->tun_opts_len = 0;
|
||||
memset(&key->tun_key, 0, sizeof(key->tun_key));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue