diff --git a/src/te/tests/deploy_specs.sh b/src/te/tests/deploy_specs.sh new file mode 100644 index 0000000000000000000000000000000000000000..17dd44dd5730f84397480a9240fd42a3d58ae43c --- /dev/null +++ b/src/te/tests/deploy_specs.sh @@ -0,0 +1,26 @@ +# Set the URL of your local Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGE="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +# Supported components are: +# context device automation policy service compute monitoring webui +# interdomain slice pathcomp dlt +# dbscanserving opticalattackmitigator opticalattackdetector +# l3_attackmitigator l3_centralizedattackdetector l3_distributedattackdetector +export TFS_COMPONENTS="context device pathcomp service slice webui" # te + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +export TFS_EXTRA_MANIFESTS="manifests/nginx_ingress_http.yaml" + +# Set the new Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" + +# If not already set, disable skip-build flag. +# If TFS_SKIP_BUILD is "YES", the containers are not rebuilt-retagged-repushed and existing ones are used. +export TFS_SKIP_BUILD=${TFS_SKIP_BUILD:-""} diff --git a/tutorial/2-6-netgen-config.yml b/src/te/tests/netgen-config.yml similarity index 100% rename from tutorial/2-6-netgen-config.yml rename to src/te/tests/netgen-config.yml diff --git a/tutorial/2-6-netgen-topology.yml.template b/src/te/tests/netgen-topology.yml.template similarity index 100% rename from tutorial/2-6-netgen-topology.yml.template rename to src/te/tests/netgen-topology.yml.template diff --git a/src/te/tests/service-descriptors.json b/src/te/tests/service-descriptors.json new file mode 100644 index 0000000000000000000000000000000000000000..15023ac9da8ff443bad6274af9de8246db524358 --- /dev/null +++ b/src/te/tests/service-descriptors.json @@ -0,0 +1,24 @@ +{ + "services": [ + { + "service_id": { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "service_uuid": {"uuid": "2c025055-bf6c-4250-8560-cf62f2d29e72"} + }, + "service_type": 4, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid":"RT1"}}, "endpoint_uuid": {"uuid":"eth-src"}}, + {"device_id": {"device_uuid": {"uuid":"RT6"}}, "endpoint_uuid": {"uuid":"eth-dst"}} + ], + "service_constraints": [], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/lsp-fw", "resource_value": { + "symbolic_name": "foo", "binding_label": 1111 + }}}, + {"action": 1, "custom": {"resource_key": "/lsp-bw", "resource_value": { + "symbolic_name": "bar", "binding_label": 6666 + }}} + ]} + } + ] +} diff --git a/tutorial/2-6-te-demo-start-testbed.sh b/src/te/tests/start-testbed.sh similarity index 79% rename from tutorial/2-6-te-demo-start-testbed.sh rename to src/te/tests/start-testbed.sh index 5ba48479c256a4847a003e7e78f9e2b1f9099adb..c480b3e75e7af7371748737ee164f2e82c4460a8 100755 --- a/tutorial/2-6-te-demo-start-testbed.sh +++ b/src/te/tests/start-testbed.sh @@ -4,10 +4,10 @@ set -e ROOTDIR="$( cd $( dirname $0 ); pwd )" RUNDIR="$( pwd )" -NEGENDIR="${RUNDIR}/netgen" +NETGENDIR="${RUNDIR}/netgen" -if [[ ! -f "${NEGENDIR}/exe/netgen" ]]; then - echo "Failed to find Netgen binary at ${NEGENDIR}/exe/netgen" +if [[ ! -f "${NETGENDIR}/exe/netgen" ]]; then + echo "Failed to find Netgen binary at ${NETGENDIR}/exe/netgen" exit 1 fi @@ -36,8 +36,8 @@ export RT1_PCE_EXT_IF_IP="$PCE_IP1.$PCE_IP2.$PCE_IP3.11" export RT6_PCE_INT_IF_IP="$PCE_IP1.$PCE_IP2.$PCE_IP3.12" export RT6_PCE_EXT_IF_IP="$PCE_IP1.$PCE_IP2.$PCE_IP3.13" -cp "${ROOTDIR}/2-6-netgen-config.yml" "${RUNDIR}/config.yml" -cat "${ROOTDIR}/2-6-netgen-topology.yml.template" | envsubst > "${RUNDIR}/topology.yml" +cp "${ROOTDIR}/netgen-config.yml" "${RUNDIR}/config.yml" +cat "${ROOTDIR}/netgen-topology.yml.template" | envsubst > "${RUNDIR}/topology.yml" sudo -i bash -c "\ cd ${RUNDIR}/netgen;\ diff --git a/src/te/tests/topology-descriptors.json b/src/te/tests/topology-descriptors.json new file mode 100644 index 0000000000000000000000000000000000000000..82f37ce295894c00831ba85b0ee059144b4f1c98 --- /dev/null +++ b/src/te/tests/topology-descriptors.json @@ -0,0 +1,201 @@ +{ + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_ids": [], + "service_ids": [] + } + ], + "topologies": [ + { + "topology_id": {"topology_uuid": {"uuid": "tetestbed"}, "context_id": {"context_uuid": {"uuid": "admin"}}}, + "device_ids": [ + {"device_uuid": {"uuid": "SW1"}}, + {"device_uuid": {"uuid": "RT1"}}, + {"device_uuid": {"uuid": "RT2"}}, + {"device_uuid": {"uuid": "RT3"}}, + {"device_uuid": {"uuid": "RT4"}}, + {"device_uuid": {"uuid": "RT5"}}, + {"device_uuid": {"uuid": "RT6"}} + ], + "link_ids": [ + {"link_uuid": {"uuid": "RT1/SW1"}}, + {"link_uuid": {"uuid": "RT2/SW1"}}, + {"link_uuid": {"uuid": "RT3/SW1"}}, + {"link_uuid": {"uuid": "RT2/RT4/1"}}, + {"link_uuid": {"uuid": "RT2/RT4/2"}}, + {"link_uuid": {"uuid": "RT3/RT5/1"}}, + {"link_uuid": {"uuid": "RT3/RT5/2"}}, + {"link_uuid": {"uuid": "RT4/RT5"}}, + {"link_uuid": {"uuid": "RT4/RT6"}}, + {"link_uuid": {"uuid": "RT5/RT6"}} + ] + } + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "SW1"}}, "device_type": "emu-packet-switch", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "df8bb169-2013-4b82-9455-69777f7a01d6"}, + {"sample_types": [], "type": "copper", "uuid": "061119c1-2aa4-48e9-be64-3ddf465fc80a"}, + {"sample_types": [], "type": "copper", "uuid": "495ea3f8-e67f-46a0-84bd-a230a4b7067d"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT1"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "1.1.1.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-src"}, + {"sample_types": [], "type": "copper", "uuid": "eth-sw1"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16010"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "1.1.1.1"}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT2"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "2.2.2.2"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-sw1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt4-1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt4-2"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16020"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "2.2.2.2"}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT3"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "3.3.3.3"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-sw1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt5-1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt5-2"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16030"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "3.3.3.3"}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT4"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "4.4.4.4"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-rt2-1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt2-2"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt5"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt6"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16040"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "4.4.4.4"}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT5"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "5.5.5.5"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-rt3-1"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt3-2"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt4"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt6"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16050"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "5.5.5.5"}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "RT6"}}, "device_type": "emu-packet-router", + "device_operational_status": 2, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "6.6.6.6"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper", "uuid": "eth-rt4"}, + {"sample_types": [], "type": "copper", "uuid": "eth-rt5"}, + {"sample_types": [], "type": "copper", "uuid": "eth-dst"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/te_data/mpls_label", "resource_value": "16060"}}, + {"action": 1, "custom": {"resource_key": "/te_data/pcc_address", "resource_value": "6.6.6.6"}} + ]} + } + ], + "links": [ + { + "link_id": {"link_uuid": {"uuid": "RT1/SW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT1"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, + {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "df8bb169-2013-4b82-9455-69777f7a01d6"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT2/SW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, + {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "061119c1-2aa4-48e9-be64-3ddf465fc80a"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT3/SW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, + {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "495ea3f8-e67f-46a0-84bd-a230a4b7067d"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT2/RT4/1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-rt4-1"}}, + {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt2-1"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT2/RT4/2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-rt4-2"}}, + {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt2-2"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT3/RT5/1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-rt5-1"}}, + {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt3-1"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT3/RT5/2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-rt5-2"}}, + {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt3-2"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT4/RT5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt5"}}, + {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt4"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT4/RT6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt6"}}, + {"device_id": {"device_uuid": {"uuid": "RT6"}}, "endpoint_uuid": {"uuid": "eth-rt4"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "RT5/RT6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt6"}}, + {"device_id": {"device_uuid": {"uuid": "RT6"}}, "endpoint_uuid": {"uuid": "eth-rt5"}} + ] + } + ] +} diff --git a/tutorial/2-6-te-demo.md b/tutorial/2-6-te-demo.md index da822e3a3d7b2ac75d9afc5f069e1fd77228a335..9bfd7881c716ca4589e948aee76a74b05357f1a3 100644 --- a/tutorial/2-6-te-demo.md +++ b/tutorial/2-6-te-demo.md @@ -78,12 +78,12 @@ ### Run the Test-Bed -First load the [teraflow configuration file](./2-6-teraflow-topology.json) using the webui. +First load the [teraflow configuration file](~/tfs-ctrl/src/te/tests/topology-descriptors.json) using the webui. The first time the configuration is loaded may partialy fail because it tries to load the topology before the devices and links, but a second load should work. In first console: $ cd ~/testbed - $ ../tfs-ctrl/tutorial/2-6-te-demo-start-testbed.sh + $ ../tfs-ctrl/src/te/tests/start-testbed.sh Then in second console: $ sudo -i diff --git a/tutorial/2-6-teraflow-service.json b/tutorial/2-6-teraflow-service.json deleted file mode 100644 index 6f8e1d52db9735d4bad9551c1e27f9a419b116d4..0000000000000000000000000000000000000000 --- a/tutorial/2-6-teraflow-service.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "services": [ - { - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "2c025055-bf6c-4250-8560-cf62f2d29e72"}}, - "service_type": 4, - "service_status": {"service_status": 2}, - "service_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid":"RT1"}}, "endpoint_uuid": {"uuid":"eth-src"}}, - {"device_id": {"device_uuid": {"uuid":"RT6"}}, "endpoint_uuid": {"uuid":"eth-dst"}} - ], - "service_constraints": [], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/lsp[foo]", "resource_value": "{\"src\": {\"device_id\": {\"device_uuid\": {\"uuid\":\"RT1\"}}, \"endpoint_uuid\": {\"uuid\":\"eth-src\"}}, \"dest\": {\"device_id\": {\"device_uuid\": {\"uuid\":\"RT6\"}}, \"endpoint_uuid\": {\"uuid\":\"eth-dst\"}}, \"binding_label\": 1111}"}}, - {"action": 1, "custom": {"resource_key": "/lsp[bar]", "resource_value": "{\"src\": {\"device_id\": {\"device_uuid\": {\"uuid\":\"RT6\"}}, \"endpoint_uuid\": {\"uuid\":\"eth-dst\"}}, \"dest\": {\"device_id\": {\"device_uuid\": {\"uuid\":\"RT1\"}}, \"endpoint_uuid\": {\"uuid\":\"eth-src\"}}, \"binding_label\": 6666}"}} - ]} - } - ] -} \ No newline at end of file diff --git a/tutorial/2-6-teraflow-topology.json b/tutorial/2-6-teraflow-topology.json deleted file mode 100644 index 8b5188866c4e2d2b5dff26b6b3bf26c7eb56b2ec..0000000000000000000000000000000000000000 --- a/tutorial/2-6-teraflow-topology.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "contexts": [ - { - "context_id": {"context_uuid": {"uuid": "admin"}}, - "topology_ids": [], - "service_ids": [] - } - ], - "topologies": [ - { - "topology_id": {"topology_uuid": {"uuid": "tetestbed"}, "context_id": {"context_uuid": {"uuid": "admin"}}}, - "device_ids": [ - {"device_uuid": {"uuid": "SW1"}}, - {"device_uuid": {"uuid": "RT1"}}, - {"device_uuid": {"uuid": "RT2"}}, - {"device_uuid": {"uuid": "RT3"}}, - {"device_uuid": {"uuid": "RT4"}}, - {"device_uuid": {"uuid": "RT5"}}, - {"device_uuid": {"uuid": "RT6"}} - ], - "link_ids": [ - {"link_uuid": {"uuid": "RT1/SW1"}}, - {"link_uuid": {"uuid": "RT2/SW1"}}, - {"link_uuid": {"uuid": "RT3/SW1"}}, - {"link_uuid": {"uuid": "RT2/RT4/1"}}, - {"link_uuid": {"uuid": "RT2/RT4/2"}}, - {"link_uuid": {"uuid": "RT3/RT5/1"}}, - {"link_uuid": {"uuid": "RT3/RT5/2"}}, - {"link_uuid": {"uuid": "RT4/RT5"}}, - {"link_uuid": {"uuid": "RT4/RT6"}}, - {"link_uuid": {"uuid": "RT5/RT6"}} - ] - } - ], - "devices": [ - { - "device_id": {"device_uuid": {"uuid": "SW1"}}, - "device_type": "emu-packet-switch", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"df8bb169-2013-4b82-9455-69777f7a01d6\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"061119c1-2aa4-48e9-be64-3ddf465fc80a\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"495ea3f8-e67f-46a0-84bd-a230a4b7067d\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT1"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16010"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "1.1.1.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "1.1.1.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-src\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-sw1\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT2"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16020"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "2.2.2.2"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "2.2.2.2"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-sw1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt4-1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt4-2\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT3"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16030"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "3.3.3.3"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "3.3.3.3"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-sw1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt5-1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt5-2\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT4"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16040"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "4.4.4.4"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "4.4.4.4"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt2-1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt2-2\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt5\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt6\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT5"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16050"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "5.5.5.5"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "5.5.5.5"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt3-1\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt3-2\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt4\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt6\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - }, - { - "device_id": {"device_uuid": {"uuid": "RT6"}}, - "device_type": "emu-packet-router", - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/mpls_label", "resource_value": "16060"}}, - {"action": 1, "custom": {"resource_key": "_connect/pcc_address", "resource_value": "6.6.6.6"}}, - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "6.6.6.6"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": - "{\"endpoints\": [{\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt4\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-rt5\"}, {\"sample_types\": [], \"type\": \"copper\", \"uuid\": \"eth-dst\"}]}"}} - ]}, - "device_operational_status": 1, - "device_drivers": [0], - "device_endpoints": [] - } - ], - "links": [ - { - "link_id": {"link_uuid": {"uuid": "RT1/SW1"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT1"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, - {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "df8bb169-2013-4b82-9455-69777f7a01d6"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT2/SW1"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, - {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "061119c1-2aa4-48e9-be64-3ddf465fc80a"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT3/SW1"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-sw1"}}, - {"device_id": {"device_uuid": {"uuid": "SW1"}}, "endpoint_uuid": {"uuid": "495ea3f8-e67f-46a0-84bd-a230a4b7067d"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT2/RT4/1"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-rt4-1"}}, - {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt2-1"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT2/RT4/2"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT2"}}, "endpoint_uuid": {"uuid": "eth-rt4-2"}}, - {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt2-2"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT3/RT5/1"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-rt5-1"}}, - {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt3-1"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT3/RT5/2"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT3"}}, "endpoint_uuid": {"uuid": "eth-rt5-2"}}, - {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt3-2"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT4/RT5"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt5"}}, - {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt4"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT4/RT6"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT4"}}, "endpoint_uuid": {"uuid": "eth-rt6"}}, - {"device_id": {"device_uuid": {"uuid": "RT6"}}, "endpoint_uuid": {"uuid": "eth-rt4"}} - ] - }, - { - "link_id": {"link_uuid": {"uuid": "RT5/RT6"}}, - "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "RT5"}}, "endpoint_uuid": {"uuid": "eth-rt6"}}, - {"device_id": {"device_uuid": {"uuid": "RT6"}}, "endpoint_uuid": {"uuid": "eth-rt5"}} - ] - } - ] -}