summaryrefslogtreecommitdiffstats
path: root/nsh-plugin
diff options
context:
space:
mode:
authorHongjun Ni <hongjun.ni@intel.com>2017-04-17 22:40:13 +0800
committerHongjun Ni <hongjun.ni@intel.com>2017-04-17 22:40:13 +0800
commitb1895cf231a03f221e41048f84864619ef5f9fe0 (patch)
tree8068297ac9fc1b17b1c113177e98d4b6d719d6ae /nsh-plugin
parente4b963e230651b89978d6e3477d1aa32fa5c0a66 (diff)
Extend nsh map to support gre4 and gre6 tunnel
Change-Id: I8c2384082b54a013209c325573edd3775f5eda78 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
Diffstat (limited to 'nsh-plugin')
-rw-r--r--nsh-plugin/nsh/nsh.c18
-rw-r--r--nsh-plugin/nsh/nsh.h3
-rw-r--r--nsh-plugin/nsh/nsh_test.c6
3 files changed, 19 insertions, 8 deletions
diff --git a/nsh-plugin/nsh/nsh.c b/nsh-plugin/nsh/nsh.c
index a59609a..603570b 100644
--- a/nsh-plugin/nsh/nsh.c
+++ b/nsh-plugin/nsh/nsh.c
@@ -342,9 +342,14 @@ u8 * format_nsh_map (u8 * s, va_list * args)
switch (map->next_node)
{
- case NSH_NODE_NEXT_ENCAP_GRE:
+ case NSH_NODE_NEXT_ENCAP_GRE4:
{
- s = format (s, "encapped by GRE intf: %d", map->sw_if_index);
+ s = format (s, "encapped by GRE4 intf: %d", map->sw_if_index);
+ break;
+ }
+ case NSH_NODE_NEXT_ENCAP_GRE6:
+ {
+ s = format (s, "encapped by GRE6 intf: %d", map->sw_if_index);
break;
}
case NSH_NODE_NEXT_ENCAP_VXLANGPE:
@@ -686,8 +691,10 @@ nsh_add_del_map_command_fn (vlib_main_t * vm,
else if (unformat (line_input, "nsh_action %U", unformat_nsh_action,
&nsh_action))
nsh_action_set = 1;
- else if (unformat (line_input, "encap-gre-intf %d", &sw_if_index))
- next_node = NSH_NODE_NEXT_ENCAP_GRE;
+ else if (unformat (line_input, "encap-gre4-intf %d", &sw_if_index))
+ next_node = NSH_NODE_NEXT_ENCAP_GRE4;
+ else if (unformat (line_input, "encap-gre6-intf %d", &sw_if_index))
+ next_node = NSH_NODE_NEXT_ENCAP_GRE6;
else if (unformat (line_input, "encap-vxlan-gpe-intf %d", &sw_if_index))
next_node = NSH_NODE_NEXT_ENCAP_VXLANGPE;
else if (unformat (line_input, "encap-lisp-gpe-intf %d", &sw_if_index))
@@ -773,7 +780,8 @@ VLIB_CLI_COMMAND (create_nsh_map_command, static) = {
.path = "create nsh map",
.short_help =
"create nsh map nsp <nn> nsi <nn> [del] mapped-nsp <nn> mapped-nsi <nn> nsh_action [swap|push|pop] "
- "[encap-gre-intf <nn> | encap-vxlan-gpe-intf <nn> | encap-lisp-gpe-intf <nn> | encap-none]\n",
+ "[encap-gre4-intf <nn> | encap-gre4-intf <nn> | encap-vxlan-gpe-intf <nn> | encap-lisp-gpe-intf <nn> "
+ " encap-vxlan4-intf <nn> | encap-vxlan6-intf <nn> | encap-none]\n",
.function = nsh_add_del_map_command_fn,
};
diff --git a/nsh-plugin/nsh/nsh.h b/nsh-plugin/nsh/nsh.h
index b03c8e7..4efad8d 100644
--- a/nsh-plugin/nsh/nsh.h
+++ b/nsh-plugin/nsh/nsh.h
@@ -190,7 +190,8 @@ typedef enum {
#define foreach_nsh_node_next \
_(DROP, "error-drop") \
- _(ENCAP_GRE, "gre-input" ) \
+ _(ENCAP_GRE4, "gre4-input" ) \
+ _(ENCAP_GRE6, "gre6-input" ) \
_(ENCAP_VXLANGPE, "vxlan-gpe-encap" ) \
_(ENCAP_VXLAN4, "vxlan4-encap" ) \
_(ENCAP_VXLAN6, "vxlan6-encap" ) \
diff --git a/nsh-plugin/nsh/nsh_test.c b/nsh-plugin/nsh/nsh_test.c
index 1d0a16c..6171b58 100644
--- a/nsh-plugin/nsh/nsh_test.c
+++ b/nsh-plugin/nsh/nsh_test.c
@@ -273,8 +273,10 @@ static int api_nsh_add_del_map (vat_main_t * vam)
mapped_nsp_set = 1;
else if (unformat (line_input, "mapped-nsi %d", &mapped_nsi))
mapped_nsi_set = 1;
- else if (unformat (line_input, "encap-gre-intf %d", &sw_if_index))
- next_node = NSH_NODE_NEXT_ENCAP_GRE;
+ else if (unformat (line_input, "encap-gre4-intf %d", &sw_if_index))
+ next_node = NSH_NODE_NEXT_ENCAP_GRE4;
+ else if (unformat (line_input, "encap-gre6-intf %d", &sw_if_index))
+ next_node = NSH_NODE_NEXT_ENCAP_GRE6;
else if (unformat (line_input, "encap-vxlan-gpe-intf %d", &sw_if_index))
next_node = NSH_NODE_NEXT_ENCAP_VXLANGPE;
else if (unformat (line_input, "encap-none"))