aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTetsuya Murakami <tetsuya.mrk@gmail.com>2020-03-21 14:47:02 -0700
committerTetsuya Murakami <tetsuya.mrk@gmail.com>2020-03-21 14:47:02 -0700
commit0d90ed92cf80a03da6dbd2cb655dc1718c552549 (patch)
treeaaa79e22498a2a267457c52000fda739d513b441
parent9e722bd466383dd53b10d4c1de95ad18db939147 (diff)
srv6-mobile: Fix the localsid length issue on vnet/srv6
Fix the following issue. 1. The localsid length was not stored in sr localsid structure. 2. SRv6 mobile test cases were modified based on the new sr localsid CLI syntax. Type: fix Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com> Change-Id: Ieb7620c35439e90a599802a7e0dba61a39707349
-rw-r--r--src/plugins/srv6-mobile/extra/Dockerfile.j21
-rw-r--r--src/plugins/srv6-mobile/extra/Dockerfile.j2.release1
-rw-r--r--src/plugins/srv6-mobile/test/test_srv6_mobile.py4
-rwxr-xr-xsrc/vnet/srv6/sr_localsid.c11
4 files changed, 10 insertions, 7 deletions
diff --git a/src/plugins/srv6-mobile/extra/Dockerfile.j2 b/src/plugins/srv6-mobile/extra/Dockerfile.j2
index ac58fa36b64..e8120bb736b 100644
--- a/src/plugins/srv6-mobile/extra/Dockerfile.j2
+++ b/src/plugins/srv6-mobile/extra/Dockerfile.j2
@@ -15,6 +15,7 @@ RUN set -eux; \
python3-cffi \
asciidoc \
xmlto \
+ libssl-dev \
netcat; \
rm -rf /var/lib/apt/lists/*; \
mv /usr/sbin/tcpdump /usr/bin/tcpdump
diff --git a/src/plugins/srv6-mobile/extra/Dockerfile.j2.release b/src/plugins/srv6-mobile/extra/Dockerfile.j2.release
index bdb57a61511..7507f50403b 100644
--- a/src/plugins/srv6-mobile/extra/Dockerfile.j2.release
+++ b/src/plugins/srv6-mobile/extra/Dockerfile.j2.release
@@ -17,6 +17,7 @@ RUN set -eux; \
tcpdump \
python3-cffi \
python2.7 \
+ libssl-dev \
netcat; \
rm -rf /var/lib/apt/lists/*; \
mv /usr/sbin/tcpdump /usr/bin/tcpdump
diff --git a/src/plugins/srv6-mobile/test/test_srv6_mobile.py b/src/plugins/srv6-mobile/test/test_srv6_mobile.py
index ec94b8b9c03..2ac37cefca9 100644
--- a/src/plugins/srv6-mobile/test/test_srv6_mobile.py
+++ b/src/plugins/srv6-mobile/test/test_srv6_mobile.py
@@ -236,7 +236,7 @@ class TestSRv6EndMGTP6E(VppTestCase):
pkts = self.create_packets([("A::1", "B::1"), ("C::1", "D::1")])
self.vapi.cli(
- "sr localsid prefix {}/64 behavior end.m.gtp6.e"
+ "sr localsid address {}/64 behavior end.m.gtp6.e"
.format(pkts[0]['IPv6'].dst))
self.vapi.cli(
"ip route add a1::/64 via {}".format(self.ip6_nhop))
@@ -316,7 +316,7 @@ class TestSRv6EndMGTP6D(VppTestCase):
self.vapi.cli("set sr encaps source addr A1::1")
self.vapi.cli("sr policy add bsid D4:: next D2:: next D3::")
self.vapi.cli(
- "sr localsid prefix 2001::/64 behavior end.m.gtp6.d D4::/64")
+ "sr localsid address 2001::/64 behavior end.m.gtp6.d D4::/64")
self.vapi.cli("ip route add D2::/64 via {}".format(self.ip6_nhop))
self.logger.info(self.vapi.cli("show sr policies"))
diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c
index 2e8b10d2987..6af6b7497bd 100755
--- a/src/vnet/srv6/sr_localsid.c
+++ b/src/vnet/srv6/sr_localsid.c
@@ -144,6 +144,11 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr,
pref_length = plugin->prefix_length;
}
+ if (localsid_prefix_len != 0)
+ {
+ pref_length = localsid_prefix_len;
+ }
+
/* Check whether there exists a FIB entry with such address */
fib_prefix_t pfx = {
.fp_proto = FIB_PROTOCOL_IP6,
@@ -152,11 +157,7 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr,
pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0];
pfx.fp_addr.as_u64[1] = localsid_addr->as_u64[1];
-
- if (pref_length != 0)
- {
- pfx.fp_len = pref_length;
- }
+ pfx.fp_len = pref_length;
/* Lookup the FIB index associated to the table id provided */
u32 fib_index = fib_table_find (FIB_PROTOCOL_IP6, fib_table);