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 deprecate it.

Signed-off-by: Pravin B Shelar <pshe...@nicira.com>
---
 NEWS                 |  1 +
 datapath/vport-gre.c |  2 ++
 lib/netdev-vport.c   | 38 +++++++++++++++++++++++++-------------
 3 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/NEWS b/NEWS
index fdcc0c6..a35cead 100644
--- a/NEWS
+++ b/NEWS
@@ -108,6 +108,7 @@ v2.4.0 - xx xxx xxxx
      how daemons will talk with syslog.
    - Support for "ovs-appctl vlog/list-pattern" command that lets to query
      logging message format for each destination.
+   - GRE64 tunneling is deprecated and will be removed soon.
 
 
 v2.3.0 - 14 Aug 2014
diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c
index 7bbcf57..dce2bb0 100644
--- a/datapath/vport-gre.c
+++ b/datapath/vport-gre.c
@@ -330,6 +330,8 @@ static struct vport *gre64_create(const struct vport_parms 
*parms)
        struct vport *vport;
        int err;
 
+       pr_warn("GRE64 tunneling is deprecated and will be removed soon.");
+
        err = gre_init();
        if (err)
                return ERR_PTR(err);
diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
index ea9abf9..7ca0729 100644
--- a/lib/netdev-vport.c
+++ b/lib/netdev-vport.c
@@ -826,6 +826,13 @@ get_stats(const struct netdev *netdev, struct netdev_stats 
*stats)
     return 0;
 }
 
+static int
+netdev_gre64_init(void)
+{
+    VLOG_WARN("GRE64 tunneling is deprecated and will be removed soon.");
+    return 0;
+}
+
 
 /* Tunnel push pop ops. */
 
@@ -1315,11 +1322,11 @@ netdev_vport_range(struct unixctl_conn *conn, int argc,
 }
 
 
-#define VPORT_FUNCTIONS(GET_CONFIG, SET_CONFIG,             \
+#define VPORT_FUNCTIONS(INIT, GET_CONFIG, SET_CONFIG,       \
                         GET_TUNNEL_CONFIG, GET_STATUS,      \
                         BUILD_HEADER,                       \
                         PUSH_HEADER, POP_HEADER)            \
-    NULL,                                                   \
+    INIT,                                                   \
     netdev_vport_run,                                       \
     netdev_vport_wait,                                      \
                                                             \
@@ -1385,9 +1392,9 @@ netdev_vport_range(struct unixctl_conn *conn, int argc,
     NULL,                   /* rx_drain */
 
 
-#define TUNNEL_CLASS(NAME, DPIF_PORT, BUILD_HEADER, PUSH_HEADER, POP_HEADER)   
\
+#define TUNNEL_CLASS(NAME, DPIF_PORT, INIT, BUILD_HEADER, PUSH_HEADER, 
POP_HEADER)   \
     { DPIF_PORT,                                                               
\
-        { NAME, VPORT_FUNCTIONS(get_tunnel_config,                             
\
+        { NAME, VPORT_FUNCTIONS(INIT, get_tunnel_config,                       
\
                                 set_tunnel_config,                             
\
                                 get_netdev_tunnel_config,                      
\
                                 tunnel_get_status,                             
\
@@ -1399,20 +1406,24 @@ netdev_vport_tunnel_register(void)
     /* The name of the dpif_port should be short enough to accomodate adding
      * a port number to the end if one is necessary. */
     static const struct vport_class vport_classes[] = {
-        TUNNEL_CLASS("geneve", "genev_sys", netdev_geneve_build_header,
+        TUNNEL_CLASS("geneve", "genev_sys", NULL,
+                                            netdev_geneve_build_header,
                                             push_udp_header,
                                             netdev_geneve_pop_header),
-        TUNNEL_CLASS("gre", "gre_sys", netdev_gre_build_header,
+        TUNNEL_CLASS("gre", "gre_sys", NULL,
+                                       netdev_gre_build_header,
                                        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,
+        TUNNEL_CLASS("ipsec_gre", "gre_sys", NULL, NULL, NULL, NULL),
+        TUNNEL_CLASS("gre64", "gre64_sys", netdev_gre64_init,
+                                           NULL,  NULL, NULL),
+        TUNNEL_CLASS("ipsec_gre64", "gre64_sys", NULL, NULL, NULL, NULL),
+        TUNNEL_CLASS("vxlan", "vxlan_sys", NULL,
+                                           netdev_vxlan_build_header,
                                            push_udp_header,
                                            netdev_vxlan_pop_header),
-        TUNNEL_CLASS("lisp", "lisp_sys", NULL, NULL, NULL),
-        TUNNEL_CLASS("stt", "stt_sys", NULL, NULL, NULL),
+        TUNNEL_CLASS("lisp", "lisp_sys", NULL, NULL, NULL, NULL),
+        TUNNEL_CLASS("stt", "stt_sys", NULL, NULL, NULL, NULL),
     };
     static struct ovsthread_once once = OVSTHREAD_ONCE_INITIALIZER;
 
@@ -1435,7 +1446,8 @@ netdev_vport_patch_register(void)
 {
     static const struct vport_class patch_class =
         { NULL,
-            { "patch", VPORT_FUNCTIONS(get_patch_config,
+            { "patch", VPORT_FUNCTIONS(NULL,
+                                       get_patch_config,
                                        set_patch_config,
                                        NULL,
                                        NULL, NULL, NULL, NULL) }};
-- 
1.8.3.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to