GRE64 was introduced to extend gre key from 32-bit to 64-bit using gre-key and sequence number field. But GRE64 is not standard protocol. There are not many users of this protocol. Therefore we have decided to remove it.
Signed-off-by: Pravin B Shelar <pshe...@nicira.com> --- - Removed bit hole from OVS_DB_ flags. - Removed gre64 ref from the sFlow. --- datapath-windows/ovsext/Debug.h | 19 +-- datapath-windows/ovsext/Switch.h | 3 +- datapath-windows/ovsext/Vport.c | 3 - datapath-windows/ovsext/Vport.h | 5 +- datapath/linux/compat/include/linux/openvswitch.h | 1 - datapath/vport-gre.c | 197 +++++----------------- datapath/vport.h | 1 - debian/ovs-monitor-ipsec | 2 +- lib/dpif-netlink.c | 5 - lib/netdev-vport.c | 2 - ofproto/ofproto-dpif-ipfix.c | 12 +- ofproto/ofproto-dpif-sflow.c | 8 - tests/ovs-vsctl.at | 5 - tests/tunnel.at | 4 +- vswitchd/vswitch.xml | 24 +-- 15 files changed, 63 insertions(+), 228 deletions(-) diff --git a/datapath-windows/ovsext/Debug.h b/datapath-windows/ovsext/Debug.h index 4b7b526..45f3c49 100644 --- a/datapath-windows/ovsext/Debug.h +++ b/datapath-windows/ovsext/Debug.h @@ -31,16 +31,15 @@ #define OVS_DBG_CHECKSUM BIT32(11) #define OVS_DBG_VXLAN BIT32(12) #define OVS_DBG_GRE BIT32(13) -#define OVS_DBG_GRE64 BIT32(14) -#define OVS_DBG_ACTION BIT32(15) -#define OVS_DBG_DATAPATH BIT32(16) -#define OVS_DBG_PROPERTY BIT32(17) -#define OVS_DBG_IPHELPER BIT32(18) -#define OVS_DBG_BUFMGMT BIT32(19) -#define OVS_DBG_OTHERS BIT32(21) -#define OVS_DBG_NETLINK BIT32(22) -#define OVS_DBG_TUNFLT BIT32(23) -#define OVS_DBG_STT BIT32(24) +#define OVS_DBG_ACTION BIT32(14) +#define OVS_DBG_DATAPATH BIT32(15) +#define OVS_DBG_PROPERTY BIT32(16) +#define OVS_DBG_IPHELPER BIT32(17) +#define OVS_DBG_BUFMGMT BIT32(18) +#define OVS_DBG_OTHERS BIT32(19) +#define OVS_DBG_NETLINK BIT32(20) +#define OVS_DBG_TUNFLT BIT32(21) +#define OVS_DBG_STT BIT32(22) #define OVS_DBG_RESERVED BIT32(31) //Please add above OVS_DBG_RESERVED. diff --git a/datapath-windows/ovsext/Switch.h b/datapath-windows/ovsext/Switch.h index 3bc20ee..001335a 100644 --- a/datapath-windows/ovsext/Switch.h +++ b/datapath-windows/ovsext/Switch.h @@ -37,8 +37,7 @@ #define OVS_TUNNEL_INDEX_START RESERVED_START_INDEX1 #define OVS_VXLAN_VPORT_INDEX 2 #define OVS_GRE_VPORT_INDEX 3 -#define OVS_GRE64_VPORT_INDEX 4 -#define OVS_TUNNEL_INDEX_END OVS_GRE64_VPORT_INDEX +#define OVS_TUNNEL_INDEX_END OVS_GRE_VPORT_INDEX #define OVS_MAX_PHYS_ADAPTERS 32 #define OVS_MAX_IP_VPOR 32 diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 65a4134..0537c1f 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -914,8 +914,6 @@ OvsInitTunnelVport(PVOID userContext, switch (ovsType) { case OVS_VPORT_TYPE_GRE: break; - case OVS_VPORT_TYPE_GRE64: - break; case OVS_VPORT_TYPE_VXLAN: { POVS_TUNFLT_INIT_CONTEXT tunnelContext = NULL; @@ -1178,7 +1176,6 @@ OvsRemoveAndDeleteVport(PVOID usrParamsContext, OvsCleanupSttTunnel(vport); break; case OVS_VPORT_TYPE_GRE: - case OVS_VPORT_TYPE_GRE64: break; case OVS_VPORT_TYPE_NETDEV: if (vport->isExternal) { diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/Vport.h index 4c6e858..ba21c62 100644 --- a/datapath-windows/ovsext/Vport.h +++ b/datapath-windows/ovsext/Vport.h @@ -80,7 +80,7 @@ typedef struct _OVS_VPORT_FULL_STATS { /* * Each internal, external adapter or vritual adapter has * one vport entry. In addition, we have one vport for each - * tunnel type, such as vxlan, gre, gre64 + * tunnel type, such as vxlan, gre */ typedef struct _OVS_VPORT_ENTRY { LIST_ENTRY ovsNameLink; @@ -181,8 +181,7 @@ OvsIsTunnelVportType(OVS_VPORT_TYPE ovsType) { return ovsType == OVS_VPORT_TYPE_VXLAN || ovsType == OVS_VPORT_TYPE_STT || - ovsType == OVS_VPORT_TYPE_GRE || - ovsType == OVS_VPORT_TYPE_GRE64; + ovsType == OVS_VPORT_TYPE_GRE; } diff --git a/datapath/linux/compat/include/linux/openvswitch.h b/datapath/linux/compat/include/linux/openvswitch.h index 59bec35..578cd88 100644 --- a/datapath/linux/compat/include/linux/openvswitch.h +++ b/datapath/linux/compat/include/linux/openvswitch.h @@ -228,7 +228,6 @@ enum ovs_vport_type { OVS_VPORT_TYPE_GRE, /* GRE tunnel. */ OVS_VPORT_TYPE_VXLAN, /* VXLAN tunnel. */ OVS_VPORT_TYPE_GENEVE, /* Geneve tunnel. */ - OVS_VPORT_TYPE_GRE64 = 104, /* GRE tunnel with 64-bit keys */ OVS_VPORT_TYPE_LISP = 105, /* LISP tunnel */ OVS_VPORT_TYPE_STT = 106, /* STT tunnel */ __OVS_VPORT_TYPE_MAX diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index 7bbcf57..0328fe5 100644 --- a/datapath/vport-gre.c +++ b/datapath/vport-gre.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007-2012 Nicira, Inc. + * Copyright (c) 2007-2015 Nicira, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public @@ -18,6 +18,7 @@ #include <linux/kconfig.h> #if IS_ENABLED(CONFIG_NET_IPGRE_DEMUX) + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include <linux/if.h> @@ -34,8 +35,6 @@ #include <linux/module.h> #include <linux/workqueue.h> #include <linux/rculist.h> -#include <net/net_namespace.h> -#include <net/netns/generic.h> #include <net/route.h> #include <net/xfrm.h> @@ -43,13 +42,14 @@ #include <net/ip.h> #include <net/ip_tunnels.h> #include <net/gre.h> +#include <net/net_namespace.h> +#include <net/netns/generic.h> #include <net/protocol.h> #include "datapath.h" #include "vport.h" static struct vport_ops ovs_gre_vport_ops; -static struct vport_ops ovs_gre64_vport_ops; /* Returns the least-significant 32 bits of a __be64. */ static __be32 be64_get_low32(__be64 x) @@ -67,22 +67,21 @@ static __be16 filter_tnl_flags(__be16 flags) } static struct sk_buff *__build_header(struct sk_buff *skb, - int tunnel_hlen, - __be32 seq, __be16 gre64_flag) + int tunnel_hlen) { - const struct ovs_key_ipv4_tunnel *tun_key; struct tnl_ptk_info tpi; + const struct ovs_key_ipv4_tunnel *tun_key; tun_key = &OVS_CB(skb)->egress_tun_info->tunnel; + skb = gre_handle_offloads(skb, !!(tun_key->tun_flags & TUNNEL_CSUM)); if (IS_ERR(skb)) return skb; - tpi.flags = filter_tnl_flags(tun_key->tun_flags) | gre64_flag; - + tpi.flags = filter_tnl_flags(tun_key->tun_flags); tpi.proto = htons(ETH_P_TEB); tpi.key = be64_get_low32(tun_key->tun_id); - tpi.seq = seq; + tpi.seq = 0; gre_build_header(skb, &tpi, tunnel_hlen); return skb; @@ -107,10 +106,7 @@ static int gre_rcv(struct sk_buff *skb, __be64 key; ovs_net = net_generic(dev_net(skb->dev), ovs_net_id); - if ((tpi->flags & TUNNEL_KEY) && (tpi->flags & TUNNEL_SEQ)) - vport = rcu_dereference(ovs_net->vport_net.gre64_vport); - else - vport = rcu_dereference(ovs_net->vport_net.gre_vport); + vport = rcu_dereference(ovs_net->vport_net.gre_vport); if (unlikely(!vport)) return PACKET_REJECT; @@ -130,10 +126,7 @@ static int gre_err(struct sk_buff *skb, u32 info, struct vport *vport; ovs_net = net_generic(dev_net(skb->dev), ovs_net_id); - if ((tpi->flags & TUNNEL_KEY) && (tpi->flags & TUNNEL_SEQ)) - vport = rcu_dereference(ovs_net->vport_net.gre64_vport); - else - vport = rcu_dereference(ovs_net->vport_net.gre_vport); + vport = rcu_dereference(ovs_net->vport_net.gre_vport); if (unlikely(!vport)) return PACKET_REJECT; @@ -141,18 +134,21 @@ static int gre_err(struct sk_buff *skb, u32 info, return PACKET_RCVD; } -static int __send(struct vport *vport, struct sk_buff *skb, - int tunnel_hlen, - __be32 seq, __be16 gre64_flag) +static int gre_tnl_send(struct vport *vport, struct sk_buff *skb) { - struct ovs_key_ipv4_tunnel *tun_key; + const struct ovs_key_ipv4_tunnel *tun_key; struct rtable *rt; int min_headroom; __be16 df; + int tunnel_hlen; __be32 saddr; int err; - /* Route lookup */ + if (unlikely(!OVS_CB(skb)->egress_tun_info)) { + err = -EINVAL; + goto err_free_skb; + } + tun_key = &OVS_CB(skb)->egress_tun_info->tunnel; saddr = tun_key->ipv4_src; rt = find_route(ovs_dp_get_net(vport->dp), @@ -161,13 +157,14 @@ static int __send(struct vport *vport, struct sk_buff *skb, skb->mark); if (IS_ERR(rt)) { err = PTR_ERR(rt); - goto error; + goto err_free_skb; } + tunnel_hlen = ip_gre_calc_hlen(tun_key->tun_flags); + min_headroom = LL_RESERVED_SPACE(rt_dst(rt).dev) + rt_dst(rt).header_len + tunnel_hlen + sizeof(struct iphdr) + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0); - if (skb_headroom(skb) < min_headroom || skb_header_cloned(skb)) { int head_delta = SKB_DATA_ALIGN(min_headroom - skb_headroom(skb) + @@ -178,43 +175,39 @@ static int __send(struct vport *vport, struct sk_buff *skb, goto err_free_rt; } - if (skb_vlan_tag_present(skb)) { - if (unlikely(!vlan_insert_tag_set_proto(skb, - skb->vlan_proto, - skb_vlan_tag_get(skb)))) { - err = -ENOMEM; - skb = NULL; - goto err_free_rt; - } - vlan_set_tci(skb, 0); + skb = vlan_hwaccel_push_inside(skb); + if (unlikely(!skb)) { + err = -ENOMEM; + goto err_free_rt; } /* Push Tunnel header. */ - skb = __build_header(skb, tunnel_hlen, seq, gre64_flag); + skb = __build_header(skb, tunnel_hlen); if (IS_ERR(skb)) { err = PTR_ERR(skb); skb = NULL; goto err_free_rt; } - df = tun_key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0; + df = tun_key->tun_flags & TUNNEL_DONT_FRAGMENT ? + htons(IP_DF) : 0; + skb->ignore_df = 1; return iptunnel_xmit(skb->sk, rt, skb, saddr, tun_key->ipv4_dst, IPPROTO_GRE, - tun_key->ipv4_tos, - tun_key->ipv4_ttl, df, false); + tun_key->ipv4_tos, tun_key->ipv4_ttl, df, false); err_free_rt: ip_rt_put(rt); -error: +err_free_skb: kfree_skb(skb); return err; } static struct gre_cisco_protocol gre_protocol = { - .handler = gre_rcv, - .err_handler = gre_err, - .priority = 1, + .handler = gre_rcv, + .err_handler = gre_err, + .priority = 1, }; static int gre_ports; @@ -289,20 +282,6 @@ static void gre_tnl_destroy(struct vport *vport) gre_exit(); } -static int gre_send(struct vport *vport, struct sk_buff *skb) -{ - int hlen; - - if (unlikely(!OVS_CB(skb)->egress_tun_info)) { - kfree_skb(skb); - return -EINVAL; - } - - hlen = ip_gre_calc_hlen(OVS_CB(skb)->egress_tun_info->tunnel.tun_flags); - - return __send(vport, skb, hlen, 0, 0); -} - static int gre_get_egress_tun_info(struct vport *vport, struct sk_buff *skb, struct ovs_tunnel_info *egress_tun_info) { @@ -313,113 +292,22 @@ static int gre_get_egress_tun_info(struct vport *vport, struct sk_buff *skb, } static struct vport_ops ovs_gre_vport_ops = { - .type = OVS_VPORT_TYPE_GRE, - .create = gre_create, - .destroy = gre_tnl_destroy, - .get_name = gre_get_name, - .send = gre_send, + .type = OVS_VPORT_TYPE_GRE, + .create = gre_create, + .destroy = gre_tnl_destroy, + .get_name = gre_get_name, + .send = gre_tnl_send, .get_egress_tun_info = gre_get_egress_tun_info, - .owner = THIS_MODULE, -}; - -/* GRE64 vport. */ -static struct vport *gre64_create(const struct vport_parms *parms) -{ - struct net *net = ovs_dp_get_net(parms->dp); - struct ovs_net *ovs_net; - struct vport *vport; - int err; - - err = gre_init(); - if (err) - return ERR_PTR(err); - - ovs_net = net_generic(net, ovs_net_id); - if (ovsl_dereference(ovs_net->vport_net.gre64_vport)) { - vport = ERR_PTR(-EEXIST); - goto error; - } - - vport = ovs_vport_alloc(IFNAMSIZ, &ovs_gre64_vport_ops, parms); - if (IS_ERR(vport)) - goto error; - - strncpy(vport_priv(vport), parms->name, IFNAMSIZ); - rcu_assign_pointer(ovs_net->vport_net.gre64_vport, vport); - return vport; -error: - gre_exit(); - return vport; -} - -static void gre64_tnl_destroy(struct vport *vport) -{ - struct net *net = ovs_dp_get_net(vport->dp); - struct ovs_net *ovs_net; - - ovs_net = net_generic(net, ovs_net_id); - - rcu_assign_pointer(ovs_net->vport_net.gre64_vport, NULL); - ovs_vport_deferred_free(vport); - gre_exit(); -} - -static __be32 be64_get_high32(__be64 x) -{ -#ifdef __BIG_ENDIAN - return (__force __be32)((__force u64)x >> 32); -#else - return (__force __be32)x; -#endif -} - -static int gre64_send(struct vport *vport, struct sk_buff *skb) -{ - int hlen = GRE_HEADER_SECTION + /* GRE Hdr */ - GRE_HEADER_SECTION + /* GRE Key */ - GRE_HEADER_SECTION; /* GRE SEQ */ - __be32 seq; - - if (unlikely(!OVS_CB(skb)->egress_tun_info)) { - kfree_skb(skb); - return -EINVAL; - } - - if (OVS_CB(skb)->egress_tun_info->tunnel.tun_flags & TUNNEL_CSUM) - hlen += GRE_HEADER_SECTION; - - seq = be64_get_high32(OVS_CB(skb)->egress_tun_info->tunnel.tun_id); - return __send(vport, skb, hlen, seq, (TUNNEL_KEY|TUNNEL_SEQ)); -} - -static struct vport_ops ovs_gre64_vport_ops = { - .type = OVS_VPORT_TYPE_GRE64, - .create = gre64_create, - .destroy = gre64_tnl_destroy, - .get_name = gre_get_name, - .send = gre64_send, - .get_egress_tun_info = gre_get_egress_tun_info, - .owner = THIS_MODULE, + .owner = THIS_MODULE, }; static int __init ovs_gre_tnl_init(void) { - int err; - - err = ovs_vport_ops_register(&ovs_gre_vport_ops); - if (err < 0) - return err; - - err = ovs_vport_ops_register(&ovs_gre64_vport_ops); - if (err < 0) - ovs_vport_ops_unregister(&ovs_gre_vport_ops); - - return err; + return ovs_vport_ops_register(&ovs_gre_vport_ops); } static void __exit ovs_gre_tnl_exit(void) { - ovs_vport_ops_unregister(&ovs_gre64_vport_ops); ovs_vport_ops_unregister(&ovs_gre_vport_ops); } @@ -429,5 +317,4 @@ module_exit(ovs_gre_tnl_exit); MODULE_DESCRIPTION("OVS: GRE switching port"); MODULE_LICENSE("GPL"); MODULE_ALIAS("vport-type-3"); -MODULE_ALIAS("vport-type-104"); #endif diff --git a/datapath/vport.h b/datapath/vport.h index 548ce66..b217b88 100644 --- a/datapath/vport.h +++ b/datapath/vport.h @@ -34,7 +34,6 @@ struct vport_parms; /* The following definitions are for users of the vport subsytem: */ struct vport_net { struct vport __rcu *gre_vport; - struct vport __rcu *gre64_vport; }; int ovs_vport_init(void); diff --git a/debian/ovs-monitor-ipsec b/debian/ovs-monitor-ipsec index 414d18b..ffaa979 100755 --- a/debian/ovs-monitor-ipsec +++ b/debian/ovs-monitor-ipsec @@ -441,7 +441,7 @@ def main(): new_interfaces = {} for rec in idl.tables["Interface"].rows.itervalues(): - if rec.type == "ipsec_gre" or rec.type == "ipsec_gre64": + if rec.type == "ipsec_gre": name = rec.name options = rec.options peer_cert_name = "ovs-%s.pem" % (options.get("remote_ip")) diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index 8884a9f..b8c27d8 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -759,9 +759,6 @@ get_vport_type(const struct dpif_netlink_vport *vport) case OVS_VPORT_TYPE_GRE: return "gre"; - case OVS_VPORT_TYPE_GRE64: - return "gre64"; - case OVS_VPORT_TYPE_VXLAN: return "vxlan"; @@ -794,8 +791,6 @@ netdev_to_ovs_vport_type(const struct netdev *netdev) return OVS_VPORT_TYPE_STT; } else if (!strcmp(type, "geneve")) { return OVS_VPORT_TYPE_GENEVE; - } else if (strstr(type, "gre64")) { - return OVS_VPORT_TYPE_GRE64; } else if (strstr(type, "gre")) { return OVS_VPORT_TYPE_GRE; } else if (!strcmp(type, "vxlan")) { diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index a0e53b8..63aaaaa 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -1423,8 +1423,6 @@ netdev_vport_tunnel_register(void) netdev_gre_push_header, netdev_gre_pop_header), TUNNEL_CLASS("ipsec_gre", "gre_sys", NULL, NULL, NULL), - TUNNEL_CLASS("gre64", "gre64_sys", NULL, NULL, NULL), - TUNNEL_CLASS("ipsec_gre64", "gre64_sys", NULL, NULL, NULL), TUNNEL_CLASS("vxlan", "vxlan_sys", netdev_vxlan_build_header, push_udp_header, netdev_vxlan_pop_header), diff --git a/ofproto/ofproto-dpif-ipfix.c b/ofproto/ofproto-dpif-ipfix.c index 8a931d6..7f0b7db 100644 --- a/ofproto/ofproto-dpif-ipfix.c +++ b/ofproto/ofproto-dpif-ipfix.c @@ -48,7 +48,7 @@ static struct ovs_mutex mutex = OVS_MUTEX_INITIALIZER; * used to indicate the type of tunnel (0x01 = VxLAN, 0x02 = GRE) and the three * least significant bytes hold the value of the layer 2 overlay network * segment identifier: a 24-bit VxLAN tunnel's VNI or a 24-bit GRE tunnel's - * TNI. This is not compatible with GRE-64 or STT, as implemented in OVS, as + * TNI. This is not compatible with STT, as implemented in OVS, as * their tunnel IDs are 64-bit. * * Two new enterprise information elements are defined which are similar to @@ -352,7 +352,7 @@ BUILD_ASSERT_DECL(sizeof(struct ipfix_data_record_aggregated_ip) == 32); /* * support tunnel key for: * VxLAN: 24-bit VIN, - * GRE: 32- or 64-bit key, + * GRE: 32-bit key, * LISP: 24-bit instance ID * STT: 64-bit key */ @@ -588,18 +588,10 @@ dpif_ipfix_add_tunnel_port(struct dpif_ipfix *di, struct ofport *ofport, /* 32-bit key gre */ dip->tunnel_type = DPIF_IPFIX_TUNNEL_GRE; dip->tunnel_key_length = 4; - } else if (strcmp(type, "gre64") == 0) { - /* 64-bit key gre */ - dip->tunnel_type = DPIF_IPFIX_TUNNEL_GRE; - dip->tunnel_key_length = 8; } else if (strcmp(type, "ipsec_gre") == 0) { /* 32-bit key ipsec_gre */ dip->tunnel_type = DPIF_IPFIX_TUNNEL_IPSEC_GRE; dip->tunnel_key_length = 4; - } else if (strcmp(type, "ipsec_gre64") == 0) { - /* 64-bit key ipsec_gre */ - dip->tunnel_type = DPIF_IPFIX_TUNNEL_IPSEC_GRE; - dip->tunnel_key_length = 8; } else if (strcmp(type, "vxlan") == 0) { dip->tunnel_type = DPIF_IPFIX_TUNNEL_VXLAN; dip->tunnel_key_length = 3; diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c index 185addf..264f2db 100644 --- a/ofproto/ofproto-dpif-sflow.c +++ b/ofproto/ofproto-dpif-sflow.c @@ -60,10 +60,8 @@ enum dpif_sflow_tunnel_type { DPIF_SFLOW_TUNNEL_UNKNOWN = 0, DPIF_SFLOW_TUNNEL_VXLAN, DPIF_SFLOW_TUNNEL_GRE, - DPIF_SFLOW_TUNNEL_GRE64, DPIF_SFLOW_TUNNEL_LISP, DPIF_SFLOW_TUNNEL_IPSEC_GRE, - DPIF_SFLOW_TUNNEL_IPSEC_GRE64, DPIF_SFLOW_TUNNEL_GENEVE }; @@ -590,12 +588,8 @@ dpif_sflow_tunnel_type(struct ofport *ofport) { if (type) { if (strcmp(type, "gre") == 0) { return DPIF_SFLOW_TUNNEL_GRE; - } else if (strcmp(type, "gre64") == 0) { - return DPIF_SFLOW_TUNNEL_GRE64; } else if (strcmp(type, "ipsec_gre") == 0) { return DPIF_SFLOW_TUNNEL_IPSEC_GRE; - } else if (strcmp(type, "ipsec_gre64") == 0) { - return DPIF_SFLOW_TUNNEL_IPSEC_GRE64; } else if (strcmp(type, "vxlan") == 0) { return DPIF_SFLOW_TUNNEL_VXLAN; } else if (strcmp(type, "lisp") == 0) { @@ -615,12 +609,10 @@ dpif_sflow_tunnel_proto(enum dpif_sflow_tunnel_type tunnel_type) switch(tunnel_type) { case DPIF_SFLOW_TUNNEL_GRE: - case DPIF_SFLOW_TUNNEL_GRE64: ipproto = IPPROTO_GRE; break; case DPIF_SFLOW_TUNNEL_IPSEC_GRE: - case DPIF_SFLOW_TUNNEL_IPSEC_GRE64: ipproto = IPPROTO_ESP; break; diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index 08744a1..435116a 100644 --- a/tests/ovs-vsctl.at +++ b/tests/ovs-vsctl.at @@ -1236,7 +1236,6 @@ m4_foreach( [ovs-dummy], [genev_sys], [gre_sys], -[gre64_sys], [lisp_sys], [vxlan_sys]], [ @@ -1261,9 +1260,6 @@ AT_SETUP([add-port -- reserved names 2]) # Creates all type of tunnel ports OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=gre \ options:remote_ip=1.1.1.1 ofport_request=1\ - -- add-port br0 p2 -- set Interface p2 type=gre64 \ - options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \ - ofport_request=2 \ -- add-port br0 p3 -- set Interface p3 type=lisp \ options:remote_ip=2.2.2.2 ofport_request=3 \ -- add-port br0 p4 -- set Interface p4 type=vxlan \ @@ -1276,7 +1272,6 @@ m4_foreach( [reserved_name], [[genev_sys], [gre_sys], -[gre64_sys], [lisp_sys], [vxlan_sys]], [ diff --git a/tests/tunnel.at b/tests/tunnel.at index 00e577c..bec79dc 100644 --- a/tests/tunnel.at +++ b/tests/tunnel.at @@ -37,12 +37,12 @@ AT_CHECK([tail -1 stdout], [0], dnl reconfigure, local_ip, remote_ip AT_CHECK([ovs-vsctl set Interface p2 type=gre options:local_ip=2.2.2.3 \ options:df_default=false options:ttl=1 options:csum=true \ - -- set Interface p3 type=gre64]) + -- set Interface p3 type=vxlan]) AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl br0 65534/100: (dummy) p1 1/1: (gre: remote_ip=1.1.1.1) p2 2/1: (gre: csum=true, df_default=false, local_ip=2.2.2.3, remote_ip=1.1.1.1, ttl=1) - p3 3/64: (gre64: remote_ip=2.2.2.2) + p3 3/4789: (vxlan: remote_ip=2.2.2.2) ]) AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'], [0], [stdout]) AT_CHECK([tail -1 stdout], [0], diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index 17035bb..457f34a 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -1848,21 +1848,6 @@ IPsec tunnel. </dd> - <dt><code>gre64</code></dt> - <dd> - It is same as GRE, but it allows 64 bit key. To store higher 32-bits - of key, it uses GRE protocol sequence number field. This is non - standard use of GRE protocol since OVS does not increment - sequence number for every packet at time of encap as expected by - standard GRE implementation. See <ref group="Tunnel Options"/> - for information on configuring GRE tunnels. - </dd> - - <dt><code>ipsec_gre64</code></dt> - <dd> - Same as IPSEC_GRE except 64 bit key. - </dd> - <dt><code>vxlan</code></dt> <dd> <p> @@ -1927,8 +1912,7 @@ <p> These options apply to interfaces with <ref column="type"/> of <code>geneve</code>, <code>gre</code>, <code>ipsec_gre</code>, - <code>gre64</code>, <code>ipsec_gre64</code>, <code>vxlan</code>, - <code>lisp</code> and <code>stt</code>. + <code>vxlan</code>, <code>lisp</code> and <code>stt</code>. </p> <p> @@ -2017,7 +2001,7 @@ </li> <li> A positive 24-bit (for Geneve, VXLAN, and LISP), 32-bit (for GRE) - or 64-bit (for GRE64 and STT) number. The tunnel receives only + or 64-bit (for STT) number. The tunnel receives only packets with the specified key. </li> <li> @@ -2044,7 +2028,7 @@ </li> <li> A positive 24-bit (for Geneve, VXLAN and LISP), 32-bit (for GRE) or - 64-bit (for GRE64 and STT) number. Packets sent through the tunnel + 64-bit (for STT) number. Packets sent through the tunnel will have the specified key. </li> <li> @@ -4551,7 +4535,7 @@ <p>data type semantics: identifier.</p> <p>description: Key which is used for identifying an individual traffic flow within a VxLAN (24-bit VNI), GENEVE (24-bit VNI), - GRE (32- or 64-bit key), or LISP (24-bit instance ID) tunnel. The + GRE (32-bit key), or LISP (24-bit instance ID) tunnel. The key is encoded in this octetarray as a 3-, 4-, or 8-byte integer ID in network byte order.</p> </dd> -- 1.8.3.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev