summaryrefslogtreecommitdiffstats
path: root/src/plugins/srv6-as
diff options
context:
space:
mode:
authorpcamaril <pcamaril@cisco.com>2020-02-04 08:36:51 +0100
committerNeale Ranns <nranns@cisco.com>2020-02-11 16:25:41 +0000
commit30e7671c85087b5781a34bde45ef3846f5de8c17 (patch)
tree532f76c9d61e8ed9a0967cd0bccaf552279f7dbe /src/plugins/srv6-as
parent619179cfcdb087acb0864d273c4fbd3b7396974c (diff)
sr: update NH value for Ethernet payloads
Upon encapsulation of L2 frames, IETF has replaced the NextHeader value from 59 (IPv6 No Next Header) to 143 (Ethernet). https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml Type: fix Signed-off-by: pcamaril <pcamaril@cisco.com> Change-Id: I88aa5590c81d16700ff7a0bbe6337e113179496e Signed-off-by: pcamaril <pcamaril@cisco.com>
Diffstat (limited to 'src/plugins/srv6-as')
-rw-r--r--src/plugins/srv6-as/as.c2
-rw-r--r--src/plugins/srv6-as/node.c4
-rwxr-xr-xsrc/plugins/srv6-as/test/test_srv6_as.py6
3 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/srv6-as/as.c b/src/plugins/srv6-as/as.c
index cb95991cdda..1876765b8d6 100644
--- a/src/plugins/srv6-as/as.c
+++ b/src/plugins/srv6-as/as.c
@@ -182,7 +182,7 @@ srv6_as_localsid_creation_fn (ip6_sr_localsid_t * localsid)
/* Prepare rewrite string */
ls_mem->rewrite = prepare_rewrite (ls_mem->src_addr, ls_mem->sid_list,
- IP_PROTOCOL_IP6_NONXT);
+ IP_PROTOCOL_IP6_ETHERNET);
/* Associate local SID index to this interface (resize vector if needed) */
if (ls_mem->sw_if_index_in >= vec_len (sm->sw_iface_localsid2))
diff --git a/src/plugins/srv6-as/node.c b/src/plugins/srv6-as/node.c
index 6f424fcca12..9e84a9848e5 100644
--- a/src/plugins/srv6-as/node.c
+++ b/src/plugins/srv6-as/node.c
@@ -133,7 +133,7 @@ end_as_processing (vlib_buffer_t * b0,
/* Make sure next header is valid */
if (PREDICT_FALSE (hdr_type != IP_PROTOCOL_IPV6 &&
hdr_type != IP_PROTOCOL_IP_IN_IP &&
- hdr_type != IP_PROTOCOL_IP6_NONXT))
+ hdr_type != IP_PROTOCOL_IP6_ETHERNET))
{
return;
}
@@ -141,7 +141,7 @@ end_as_processing (vlib_buffer_t * b0,
/* Remove IP header and extensions */
vlib_buffer_advance (b0, encap_len);
- if (hdr_type == IP_PROTOCOL_IP6_NONXT)
+ if (hdr_type == IP_PROTOCOL_IP6_ETHERNET)
{
/* Set output interface */
vnet_buffer (b0)->sw_if_index[VLIB_TX] = ls0_mem->sw_if_index_out;
diff --git a/src/plugins/srv6-as/test/test_srv6_as.py b/src/plugins/srv6-as/test/test_srv6_as.py
index 9e8e4252cc7..eec44e31ee5 100755
--- a/src/plugins/srv6-as/test/test_srv6_as.py
+++ b/src/plugins/srv6-as/test/test_srv6_as.py
@@ -523,8 +523,8 @@ class TestSRv6(VppTestCase):
self.assertEqual(rx_srh.segleft, len(tx_seglist)-1)
# segleft should be equal to lastentry
self.assertEqual(rx_srh.segleft, rx_srh.lastentry)
- # nh should be "No Next Header" (59)
- self.assertEqual(rx_srh.nh, 59)
+ # nh should be "No Next Header" (143)
+ self.assertEqual(rx_srh.nh, 143)
# get payload
payload = rx_srh.payload
else:
@@ -796,7 +796,7 @@ class TestSRv6(VppTestCase):
p = (IPv6(src='1234::1', dst=sidlist[segleft]) /
IPv6ExtHdrSegmentRouting(addresses=sidlist,
- segleft=segleft, nh=59) /
+ segleft=segleft, nh=143) /
eth)
return p