nat: dslite ce mode in separate config entry 83/26483/5
authorVladimir Ratnikov <vratnikov@netgate.com>
Mon, 13 Apr 2020 10:36:19 +0000 (06:36 -0400)
committerOle Trøan <otroan@employees.org>
Tue, 21 Apr 2020 13:33:22 +0000 (13:33 +0000)
Previously dslite was moved to separate plugin folder
and CE mode was removed. But it still needed.
This patch adds CE option to separate config entry

Type: feature

Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>
Change-Id: If153ae08fa385ba5a6605cb412e49bbb4d1db46c

src/plugins/nat/dslite/dslite.c
src/plugins/nat/test/test_dslite.py

index e03dd0c..ebf8afa 100644 (file)
@@ -114,6 +114,21 @@ dslite_set_ce (dslite_main_t * dm, u8 set)
   dm->is_ce = (set != 0);
 }
 
+static clib_error_t *
+dslite_config (vlib_main_t * vm, unformat_input_t * input)
+{
+  dslite_main_t *dm = &dslite_main;
+
+  while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+    {
+      if (unformat (input, "ce"))
+       dslite_set_ce (dm, 1);
+    }
+  return 0;
+}
+
+VLIB_CONFIG_FUNCTION (dslite_config, "dslite");
+
 int
 dslite_set_aftr_ip6_addr (dslite_main_t * dm, ip6_address_t * addr)
 {
index dfa7d7c..af256e3 100644 (file)
@@ -231,13 +231,13 @@ class TestDSlite(VppTestCase):
         self.logger.info(self.vapi.cli("show dslite sessions"))
 
 
-class TestDSliteCE():
+class TestDSliteCE(VppTestCase):
     """ DS-Lite CE Test Cases """
 
     @classmethod
     def setUpConstants(cls):
         super(TestDSliteCE, cls).setUpConstants()
-        cls.vpp_cmdline.extend(["nat", "{", "dslite ce", "}"])
+        cls.vpp_cmdline.extend(["dslite", "{", "ce", "}"])
 
     @classmethod
     def setUpClass(cls):
@@ -264,8 +264,9 @@ class TestDSliteCE():
     def test_dslite_ce(self):
         """ Test DS-Lite CE """
 
-        nat_config = self.vapi.nat_show_config()
-        self.assertEqual(1, nat_config.dslite_ce)
+        # TODO: add message to retrieve dslite config
+        # nat_config = self.vapi.nat_show_config()
+        # self.assertEqual(1, nat_config.dslite_ce)
 
         b4_ip4 = '192.0.0.2'
         b4_ip6 = '2001:db8:62aa::375e:f4c1:1'