CSIT-1320 Update SFC-controller configurations to latest version 08/15008/7
authorPeter Mikus <pmikus@cisco.com>
Thu, 27 Sep 2018 07:27:52 +0000 (07:27 +0000)
committerPeter Mikus <pmikus@cisco.com>
Tue, 2 Oct 2018 11:00:32 +0000 (11:00 +0000)
Change-Id: Ibaca5e848a8f4dcd2a50f873bea37bd99aa5d62c
Signed-off-by: Peter Mikus <pmikus@cisco.com>
resources/templates/kubernetes/configmaps/eth-1drcl2bdbasemaclrn-eth-2memif-1drcl2xc-1paral.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2bdbasemaclrn-eth-2memif-2drcl2xc-1horiz.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2bdbasemaclrn-eth-2memif-4drcl2xc-1horiz.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2bdbasemaclrn-eth-4memif-2drcl2xc-1chain.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2bdbasemaclrn-eth-8memif-4drcl2xc-1chain.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2xcbase-eth-2memif-1drcl2xc-1paral.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2xcbase-eth-2memif-2drcl2xc-1horiz.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2xcbase-eth-2memif-4drcl2xc-1horiz.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2xcbase-eth-4memif-2drcl2xc-1chain.yaml
resources/templates/kubernetes/configmaps/eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain.yaml
resources/templates/kubernetes/pods/contiv-sfc-controller.yaml

index 2946c34..fd457dd 100644 (file)
@@ -12,55 +12,72 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vswitch
-        description: VNF1 to vswitch - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
 
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2mp # bridge eth1 to vnf port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+                l2bd:
+                  name: eth1-vnf-port1
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2mp # bridge eth2 to vnf port 2
+                pod_interfaces:
+                  - vnf1/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+                l2bd:
+                  name: eth2-vnf-port2
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
\ No newline at end of file
index 93c8fc8..7cb107d 100644 (file)
@@ -12,73 +12,94 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf2
-        description: VNF2 to vswitch - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via direct - memifs
-        type: 6
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
 
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2mp # bridge eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+                l2bd:
+                  name: eth1-vnf-port1
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2mp # bridge eth2 to vnf2 port 2
+                pod_interfaces:
+                  - vnf2/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+                l2bd:
+                  name: eth2-vnf-port2
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
index 804fa98..af11149 100644 (file)
@@ -12,109 +12,141 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf4
-        description: VNF4 to vswitch - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf4
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via direct - memifs
-        type: 6
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf2-vnf3
-        description: vnf2 to vnf3 via direct - memifs
-        type: 6
-        elements:
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf3
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf3-vnf4
-        description: vnf3 to vnf4 via direct - memifs
-        type: 6
-        elements:
-          - container: vnf3
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf4
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf3
-        container: vnf3
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf4
-        container: vnf4
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+      - pod: vnf3
+        node: vswitch
+      - pod: vnf4
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf3
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf4
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2mp # bridge eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+                l2bd:
+                  name: eth1-vnf-port1
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf2 to vnf3
+                  - vnf2/port2
+                  - vnf3/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf3
+                  - vnf3/port1
+                  - vnf3/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf3 to vnf4
+                  - vnf3/port2
+                  - vnf4/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf4
+                  - vnf4/port1
+                  - vnf4/port2
+
+              - conn_type: l2mp # bridge eth2 to vnf4 port 2
+                pod_interfaces:
+                  - vnf4/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+                l2bd:
+                  name: eth2-vnf-port2
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
index a5f24ef..d52b7f7 100644 (file)
@@ -12,73 +12,95 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf2
-        description: VNF2 to vswitch - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 5
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
 
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2mp # bridge eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+                l2bd:
+                  name: eth1-vnf-port1
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2mp # bridge eth2 to vnf2 port 2
+                pod_interfaces:
+                  - vnf2/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+                l2bd:
+                  name: eth2-vnf-port2
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
index 6209b12..317f282 100644 (file)
@@ -12,109 +12,141 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf4
-        description: VNF4 to vswitch - memif
-        type: 3
-        bd_parms:
-          flood: true
-          unknown_unicast_flood: true
-          forward: true
-          learn: true
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf4
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 5
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf2-vnf3
-        description: vnf2 to vnf3 via vswitch memifs
-        type: 5
-        elements:
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf3
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf3-vnf4
-        description: vnf3 to vnf4 via vswitch memifs
-        type: 5
-        elements:
-          - container: vnf3
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf4
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf3
-        container: vnf3
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf4
-        container: vnf4
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+      - pod: vnf3
+        node: vswitch
+      - pod: vnf4
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf3
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf4
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2mp # bridge eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+                l2bd:
+                  name: eth1-vnf-port1
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf2 to vnf3
+                  - vnf2/port2
+                  - vnf3/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf3
+                  - vnf3/port1
+                  - vnf3/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf3 to vnf4
+                  - vnf3/port2
+                  - vnf4/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf4
+                  - vnf4/port1
+                  - vnf4/port2
+
+              - conn_type: l2mp # bridge eth2 to vnf4 port 2
+                pod_interfaces:
+                  - vnf4/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+                l2bd:
+                  name: eth2-vnf-port2
+                  bd_parms:
+                    flood: true
+                    unknown_unicast_flood: true
+                    forward: true
+                    learn: true
index 2a2e3fd..42f7f8c 100644 (file)
@@ -12,45 +12,58 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vswitch
-        description: VNF1 to vswitch - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2pp # l2x eth1 to vnf port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp # l2x eth2 to vnf port 2
+                pod_interfaces:
+                  - vnf1/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
index dc9dcfb..9d8d700 100644 (file)
@@ -12,63 +12,81 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf2
-        description: VNF2 to vswitch - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 6
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
 
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2pp # l2x eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2mp # l2x eth2 to vnf2 port 2
+                pod_interfaces:
+                  - vnf2/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
+
index 66374f5..5d113f6 100644 (file)
@@ -12,99 +12,127 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf4
-        description: VNF4 to vswitch - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf4
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 6
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf2-vnf3
-        description: vnf2 to vnf3 via direct memifs
-        type: 6
-        elements:
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf3
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf3-vnf4
-        description: vnf3 to vnf4 via direct memifs
-        type: 6
-        elements:
-          - container: vnf3
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf4
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf3
-        container: vnf3
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf4
-        container: vnf4
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+      - pod: vnf3
+        node: vswitch
+      - pod: vnf4
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf3
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf4
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2pp # l2x eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf2 to vnf3
+                  - vnf2/port2
+                  - vnf3/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf3
+                  - vnf3/port1
+                  - vnf3/port2
+
+              - conn_type: l2pp
+                conn_method: direct
+                pod_interfaces: # direct memif between vnf3 to vnf4
+                  - vnf3/port2
+                  - vnf4/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf4
+                  - vnf4/port1
+                  - vnf4/port2
+
+              - conn_type: l2pp # l2x eth2 to vnf4 port 2
+                pod_interfaces:
+                  - vnf4/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
index 2363d3c..8d4c28d 100644 (file)
@@ -12,63 +12,81 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf2
-        description: VNF2 to vswitch - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 5
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
 
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2pp # l2x eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2pp # l2x eth2 to vnf2 port 2
+                pod_interfaces:
+                  - vnf2/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
index a46b186..2716446 100644 (file)
@@ -12,99 +12,139 @@ data:
       - "172.17.0.1:22379"
 
   sfc.conf: |
-    sfc_controller_config_version: 1
+    sfc_controller_config_version: 2
     description: $$TEST_NAME$$
+
     system_parameters:
       mtu: 9000
-    host_entities:
-      - name: vswitch
-    sfc_entities:
-      - name: vswitch-vnf1
-        description: vswitch to VNF1 - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF1$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf1
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vswitch-vnf4
-        description: VNF4 to vswitch - memif
-        type: 4
-        elements:
-          - container: vswitch
-            port_label: $$VSWITCH_IF2$$
-            etcd_vpp_switch_key: vswitch
-            type: 5
-          - container: vnf4
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf1-vnf2
-        description: vnf1 to vnf2 via vswitch - memifs
-        type: 5
-        elements:
-          - container: vnf1
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf2
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf2-vnf3
-        description: vnf2 to vnf3 via vswitch memifs
-        type: 5
-        elements:
-          - container: vnf2
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf3
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-      - name: vnf3-vnf4
-        description: vnf3 to vnf4 via vswitch memifs
-        type: 5
-        elements:
-          - container: vnf3
-            port_label: port2
-            etcd_vpp_switch_key: vswitch
-            type: 2
-          - container: vnf4
-            port_label: port1
-            etcd_vpp_switch_key: vswitch
-            type: 2
-
-  vnf.conf: |
-    vnf_plugin_config_version: 1
-    description: VNF config
-    vnf_entities:
-      - name: vnf1
-        container: vnf1
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf2
-        container: vnf2
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf3
-        container: vnf3
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
-      - name: vnf4
-        container: vnf4
-        l2xconnects:
-          - port_labels:
-            - port1
-            - port2
+
+    network_pod_to_node_map:
+      - pod: vnf1
+        node: vswitch
+      - pod: vnf2
+        node: vswitch
+      - pod: vnf3
+        node: vswitch
+      - pod: vnf4
+        node: vswitch
+
+    network_nodes:
+      - metadata:
+            name: vswitch
+        spec:
+            node_type: host
+            interfaces:
+            - name: $$VSWITCH_IF1$$
+              if_type: ethernet
+            - name: $$VSWITCH_IF2$$
+              if_type: ethernet
+
+    network_services:
+      - metadata:
+            name: my-network-service
+        spec:
+            network_pods:
+
+              - metadata:
+                  name: vnf1
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                    - name: port2
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+
+              - metadata:
+                  name: vnf2
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+                    - name: port2
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+
+              - metadata:
+                  name: vnf3
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+                    - name: port2
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+
+              - metadata:
+                  name: vnf4
+                spec:
+                  pod_type: vppcontainer
+                  interfaces:
+                    - name: port1
+                      if_type: memif
+                      memif_parms:
+                        inter_pod_conn: vswitch
+                    - name: port2
+                      if_type: memif
+
+            connections:
+
+              - conn_type: l2pp # l2x eth1 to vnf1 port 1
+                pod_interfaces:
+                  - vnf1/port1
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF1$$
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf1
+                  - vnf1/port1
+                  - vnf1/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf1 to vnf2
+                  - vnf1/port2
+                  - vnf2/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf2
+                  - vnf2/port1
+                  - vnf2/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf2 to vnf3
+                  - vnf2/port2
+                  - vnf3/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf3
+                  - vnf3/port1
+                  - vnf3/port2
+
+              - conn_type: l2pp
+                conn_method: vswitch
+                pod_interfaces: # memif via vswitch between vnf3 to vnf4
+                  - vnf3/port2
+                  - vnf4/port1
+
+              - conn_type: l2pp
+                pod_interfaces: # l2x the ports on vnf4
+                  - vnf4/port1
+                  - vnf4/port2
+
+              - conn_type: l2pp # l2x eth2 to vnf4 port 2
+                pod_interfaces:
+                  - vnf4/port2
+                node_interfaces:
+                  - vswitch/$$VSWITCH_IF2$$
index 4fa946d..44ceaae 100644 (file)
@@ -7,12 +7,11 @@ spec:
   containers:
     - name: "sfc-controller"
       image: ligato/prod_sfc_controller
-      imagePullPolicy: IfNotPresent
+      imagePullPolicy: Always
       command:
         - /bin/sfc-controller
-        - -etcdv3-config=/opt/sfc-controller/dev/etcd.conf
+        - -etcd-config=/opt/sfc-controller/dev/etcd.conf
         - -sfc-config=/opt/sfc-controller/dev/sfc.conf
-        - -vnf-config=/opt/sfc-controller/dev/vnf.conf
       volumeMounts:
         - name: controller-config
           mountPath: /opt/sfc-controller/dev