From 9b48d04e4284b0858ad0f62fe46c360a55379ed8 Mon Sep 17 00:00:00 2001 From: Jokin Garay Date: Tue, 3 Jan 2017 12:06:15 +0100 Subject: [PATCH] Updated FlowNAC NS / FlowNAC NS including test user&service Change-Id: Ie1f864ac9fcd899126bbe3d3d1501ec338de0156 Signed-off-by: Jokin Garay --- Makefile | 4 +- src/nsd/knt_flownac-us_ns/icons/flownac.png | Bin 0 -> 9044 bytes .../knt_flownac-us_ns/knt_flownac-us_nsd.yaml | 121 ++++++++++++++++++ src/nsd/knt_flownac_ns/knt_flownac_nsd.yaml | 22 ++-- src/vnfd/knt_fnc_vnf/knt_fnc__vnfd.yaml | 4 +- src/vnfd/knt_fnd_vnf/icons/keynetic.png | Bin 0 -> 12022 bytes src/vnfd/knt_fnd_vnf/knt_fnd__vnfd.yaml | 53 ++++++++ src/vnfd/knt_fne_vnf/knt_fne__vnfd.yaml | 4 +- src/vnfd/knt_fnu_vnf/icons/keynetic.png | Bin 0 -> 12022 bytes src/vnfd/knt_fnu_vnf/knt_fnu__vnfd.yaml | 53 ++++++++ 10 files changed, 244 insertions(+), 17 deletions(-) create mode 100755 src/nsd/knt_flownac-us_ns/icons/flownac.png create mode 100755 src/nsd/knt_flownac-us_ns/knt_flownac-us_nsd.yaml create mode 100644 src/vnfd/knt_fnd_vnf/icons/keynetic.png create mode 100755 src/vnfd/knt_fnd_vnf/knt_fnd__vnfd.yaml create mode 100644 src/vnfd/knt_fnu_vnf/icons/keynetic.png create mode 100755 src/vnfd/knt_fnu_vnf/knt_fnu__vnfd.yaml diff --git a/Makefile b/Makefile index 6cf2d76..511a74a 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ # BUILD_DIR = build -NSDS := gw_corpa_ns ims_allin1_corpa mwc16_gen_ns mwc16_pe_ns VyOS_ns cirros_ns cirros_2vnf_ns ubuntu_xenial_ns ping_pong_ns knt_flownac_ns +NSDS := gw_corpa_ns ims_allin1_corpa mwc16_gen_ns mwc16_pe_ns VyOS_ns cirros_ns cirros_2vnf_ns ubuntu_xenial_ns ping_pong_ns knt_flownac_ns knt_flownac-us_ns NSD_SRC_DIR := src/nsd NSD_BUILD_DIR := $(BUILD_DIR)/nsd @@ -27,7 +27,7 @@ NSD_BUILD_DIRS := $(addprefix $(NSD_BUILD_DIR)/, $(NSDS)) NSD_PKGS := $(addsuffix .tar.gz, $(NSDS)) NSD_BUILD_PKGS := $(addprefix $(NSD_BUILD_DIR)_pkgs/, $(NSD_PKGS)) -VNFDS := 6wind_vnf gw_corpa_pe1_vnf gw_corpa_pe2_vnf ims_allin1_2p_vnf tidgen_mwc16_vnf VyOS_vnf cirros_vnf ubuntu_xenial_vnf ping_vnf pong_vnf knt_fnc_vnf knt_fne_vnf +VNFDS := 6wind_vnf gw_corpa_pe1_vnf gw_corpa_pe2_vnf ims_allin1_2p_vnf tidgen_mwc16_vnf VyOS_vnf cirros_vnf ubuntu_xenial_vnf ping_vnf pong_vnf knt_fnc_vnf knt_fne_vnf knt_fnu_vnf knt_fnd_vnf VNFD_SRC_DIR := src/vnfd VNFD_BUILD_DIR := $(BUILD_DIR)/vnfd diff --git a/src/nsd/knt_flownac-us_ns/icons/flownac.png b/src/nsd/knt_flownac-us_ns/icons/flownac.png new file mode 100755 index 0000000000000000000000000000000000000000..261ed8e326cb7357e74909eb989898ccb5b576a0 GIT binary patch literal 9044 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 literal 0 HcmV?d00001 diff --git a/src/nsd/knt_flownac-us_ns/knt_flownac-us_nsd.yaml b/src/nsd/knt_flownac-us_ns/knt_flownac-us_nsd.yaml new file mode 100755 index 0000000..54cfa2d --- /dev/null +++ b/src/nsd/knt_flownac-us_ns/knt_flownac-us_nsd.yaml @@ -0,0 +1,121 @@ +# +# Copyright 2016 Keynetic Technologies +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +nsd:nsd-catalog: + nsd:nsd: + - nsd:vendor: Keynetic Technologies + nsd:version: '0.3' + nsd:description: Flow-based Network Access Control + nsd:id: flownac-us + nsd:name: Keynetic-FlowNAC-US + nsd:short-name: KNT-FNAC-US + nsd:logo: flownac.png + nsd:meta: "{\"containerPositionMap\":{\"1\":{\"top\":180,\"left\":330,\"right\":580,\"bottom\":235,\"width\":250,\"height\":55},\"2\":{\"top\":405,\"left\":330,\"right\":580,\"bottom\":460,\"width\":250,\"height\":55},\"flownac\":{\"top\":30,\"left\":135,\"right\":385,\"bottom\":85,\"width\":250,\"height\":55},\"mgmt\":{\"top\":300,\"left\":825,\"right\":1075,\"bottom\":338,\"width\":250,\"height\":38},\"user\":{\"top\":540,\"left\":60,\"right\":310,\"bottom\":578,\"width\":250,\"height\":38},\"data\":{\"top\":540,\"left\":585,\"right\":835,\"bottom\":578,\"width\":250,\"height\":38},\"auth\":{\"top\":300,\"left\":195,\"right\":445,\"bottom\":338,\"width\":250,\"height\":38},\"ctrl\":{\"top\":300,\"left\":495,\"right\":745,\"bottom\":338,\"width\":250,\"height\":38}}}" + nsd:constituent-vnfd: + - nsd:member-vnf-index: '1' + nsd:start-by-default: 'true' + nsd:vnfd-id-ref: fnc + - nsd:member-vnf-index: '2' + nsd:start-by-default: 'true' + nsd:vnfd-id-ref: fne + - nsd:member-vnf-index: '3' + nsd:start-by-default: 'true' + nsd:vnfd-id-ref: fnu + - nsd:member-vnf-index: '4' + nsd:start-by-default: 'true' + nsd:vnfd-id-ref: fnd + nsd:vld: + - nsd:description: Management Link + nsd:id: mgmt + nsd:name: mgmt + nsd:short-name: Management + nsd:type: ELAN + nsd:vim-network-name: mgmt-net + nsd:provider-network: + nsd:overlay-type: VLAN + nsd:vnfd-connection-point-ref: + - nsd:member-vnf-index-ref: '1' + nsd:vnfd-connection-point-ref: mgmt + nsd:vnfd-id-ref: fnc + - nsd:member-vnf-index-ref: '2' + nsd:vnfd-connection-point-ref: mgmt + nsd:vnfd-id-ref: fne + - nsd:member-vnf-index-ref: '3' + nsd:vnfd-connection-point-ref: mgmt + nsd:vnfd-id-ref: fnu + - nsd:member-vnf-index-ref: '4' + nsd:vnfd-connection-point-ref: mgmt + nsd:vnfd-id-ref: fnd + - nsd:description: User Link + nsd:id: user + nsd:name: user + nsd:short-name: User + nsd:type: ELAN + nsd:vim-network-name: user-net + nsd:provider-network: + nsd:overlay-type: VLAN + nsd:vnfd-connection-point-ref: + - nsd:member-vnf-index-ref: '2' + nsd:vnfd-connection-point-ref: user + nsd:vnfd-id-ref: fne + - nsd:member-vnf-index-ref: '3' + nsd:vnfd-connection-point-ref: user + nsd:vnfd-id-ref: fnu + - nsd:description: Service Link + nsd:id: data + nsd:name: service + nsd:short-name: Service + nsd:type: ELAN + nsd:vim-network-name: data-net + nsd:provider-network: + nsd:overlay-type: VLAN + nsd:vnfd-connection-point-ref: + - nsd:member-vnf-index-ref: '2' + nsd:vnfd-connection-point-ref: data + nsd:vnfd-id-ref: fne + - nsd:member-vnf-index-ref: '4' + nsd:vnfd-connection-point-ref: data + nsd:vnfd-id-ref: fnd + - nsd:description: Auth Link + nsd:id: auth + nsd:name: auth + nsd:short-name: Auth + nsd:type: ELAN + nsd:vim-network-name: auth-net + nsd:provider-network: + nsd:overlay-type: VLAN + nsd:vnfd-connection-point-ref: + - nsd:member-vnf-index-ref: '1' + nsd:vnfd-connection-point-ref: auth + nsd:vnfd-id-ref: fnc + - nsd:member-vnf-index-ref: '2' + nsd:vnfd-connection-point-ref: auth + nsd:vnfd-id-ref: fne + - nsd:description: Control Link + nsd:id: ctrl + nsd:name: ctrl + nsd:short-name: Control + nsd:type: ELAN + nsd:vim-network-name: ctrl-net + nsd:provider-network: + nsd:overlay-type: VLAN + nsd:vnfd-connection-point-ref: + - nsd:member-vnf-index-ref: '1' + nsd:vnfd-connection-point-ref: ctrl + nsd:vnfd-id-ref: fnc + - nsd:member-vnf-index-ref: '2' + nsd:vnfd-connection-point-ref: ctrl + nsd:vnfd-id-ref: fne diff --git a/src/nsd/knt_flownac_ns/knt_flownac_nsd.yaml b/src/nsd/knt_flownac_ns/knt_flownac_nsd.yaml index b7e9e2d..a4b50f5 100755 --- a/src/nsd/knt_flownac_ns/knt_flownac_nsd.yaml +++ b/src/nsd/knt_flownac_ns/knt_flownac_nsd.yaml @@ -17,7 +17,7 @@ nsd:nsd-catalog: nsd:nsd: - nsd:vendor: Keynetic Technologies - nsd:version: '0.2' + nsd:version: '0.3' nsd:description: Flow-based Network Access Control nsd:id: flownac nsd:name: Keynetic-FlowNAC @@ -27,10 +27,10 @@ nsd:nsd-catalog: nsd:constituent-vnfd: - nsd:member-vnf-index: '1' nsd:start-by-default: 'true' - nsd:vnfd-id-ref: fnc0.1 + nsd:vnfd-id-ref: fnc - nsd:member-vnf-index: '2' nsd:start-by-default: 'true' - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne nsd:vld: - nsd:description: Management Link nsd:id: mgmt @@ -43,10 +43,10 @@ nsd:nsd-catalog: nsd:vnfd-connection-point-ref: - nsd:member-vnf-index-ref: '1' nsd:vnfd-connection-point-ref: mgmt - nsd:vnfd-id-ref: fnc0.1 + nsd:vnfd-id-ref: fnc - nsd:member-vnf-index-ref: '2' nsd:vnfd-connection-point-ref: mgmt - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne - nsd:description: User Link nsd:id: user nsd:name: user @@ -58,7 +58,7 @@ nsd:nsd-catalog: nsd:vnfd-connection-point-ref: - nsd:member-vnf-index-ref: '2' nsd:vnfd-connection-point-ref: user - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne - nsd:description: Service Link nsd:id: data nsd:name: service @@ -70,7 +70,7 @@ nsd:nsd-catalog: nsd:vnfd-connection-point-ref: - nsd:member-vnf-index-ref: '2' nsd:vnfd-connection-point-ref: data - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne - nsd:description: Auth Link nsd:id: auth nsd:name: auth @@ -82,10 +82,10 @@ nsd:nsd-catalog: nsd:vnfd-connection-point-ref: - nsd:member-vnf-index-ref: '1' nsd:vnfd-connection-point-ref: auth - nsd:vnfd-id-ref: fnc0.1 + nsd:vnfd-id-ref: fnc - nsd:member-vnf-index-ref: '2' nsd:vnfd-connection-point-ref: auth - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne - nsd:description: Control Link nsd:id: ctrl nsd:name: ctrl @@ -97,7 +97,7 @@ nsd:nsd-catalog: nsd:vnfd-connection-point-ref: - nsd:member-vnf-index-ref: '1' nsd:vnfd-connection-point-ref: ctrl - nsd:vnfd-id-ref: fnc0.1 + nsd:vnfd-id-ref: fnc - nsd:member-vnf-index-ref: '2' nsd:vnfd-connection-point-ref: ctrl - nsd:vnfd-id-ref: fne0.1 + nsd:vnfd-id-ref: fne diff --git a/src/vnfd/knt_fnc_vnf/knt_fnc__vnfd.yaml b/src/vnfd/knt_fnc_vnf/knt_fnc__vnfd.yaml index e1e3e67..b93c74a 100755 --- a/src/vnfd/knt_fnc_vnf/knt_fnc__vnfd.yaml +++ b/src/vnfd/knt_fnc_vnf/knt_fnc__vnfd.yaml @@ -17,9 +17,9 @@ vnfd:vnfd-catalog: vnfd:vnfd: - vnfd:vendor: Keynetic Technologies - vnfd:version: '0.2' + vnfd:version: '0.3' vnfd:description: FlowNAC Control - vnfd:id: fnc0.1 + vnfd:id: fnc vnfd:name: Keynetic-FNC vnfd:short-name: KNT-FNC vnfd:logo: flownac.png diff --git a/src/vnfd/knt_fnd_vnf/icons/keynetic.png b/src/vnfd/knt_fnd_vnf/icons/keynetic.png new file mode 100644 index 0000000000000000000000000000000000000000..26ed5064606753d6003d2b7167af8cc907ae9615 GIT binary patch literal 12022 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%0DcxO$^!#I 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 e}_uwH65Nv?pNq_`*m%#>?Kp5ODKyVF~ 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%0DcxO$^!#I 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 e