From 57b4d3f1470ce835cb40b354c4b0c7e69cde4f1d Mon Sep 17 00:00:00 2001 From: beierlm Date: Fri, 22 May 2020 16:06:46 -0400 Subject: [PATCH 01/16] Testing branch Signed-off-by: beierlm --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 17a92756..a26bf3a8 100644 --- a/README.md +++ b/README.md @@ -155,3 +155,5 @@ Options: -h, --help Show this message and exit. ``` + + -- GitLab From 03bd80eebaf78979a7d2c981cb3ceeab8dfe391c Mon Sep 17 00:00:00 2001 From: beierlm Date: Fri, 22 May 2020 16:11:17 -0400 Subject: [PATCH 02/16] Putting everything into one folder for Magma --- .../hackfest_gateway_pnf}/hackfest_gateway_vnf.yaml | 0 .../hackfest_magma-agw-enb_nsd}/README | 0 .../hackfest_magma-agw-enb_nsd}/hackfest_magma-agw-enb_nsd.yaml | 0 .../hackfest_magma-agw-enb_vnfd}/charms/magmagw | 0 .../hackfest_magma-agw-enb_vnfd}/hackfest_magma-agw-enb_vnfd.yaml | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename {hackfest_gateway_pnf => magma/hackfest_gateway_pnf}/hackfest_gateway_vnf.yaml (100%) rename {hackfest_magma-agw-enb_nsd => magma/hackfest_magma-agw-enb_nsd}/README (100%) rename {hackfest_magma-agw-enb_nsd => magma/hackfest_magma-agw-enb_nsd}/hackfest_magma-agw-enb_nsd.yaml (100%) rename {hackfest_magma-agw-enb_vnfd => magma/hackfest_magma-agw-enb_vnfd}/charms/magmagw (100%) rename {hackfest_magma-agw-enb_vnfd => magma/hackfest_magma-agw-enb_vnfd}/hackfest_magma-agw-enb_vnfd.yaml (100%) diff --git a/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml b/magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml similarity index 100% rename from hackfest_gateway_pnf/hackfest_gateway_vnf.yaml rename to magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml diff --git a/hackfest_magma-agw-enb_nsd/README b/magma/hackfest_magma-agw-enb_nsd/README similarity index 100% rename from hackfest_magma-agw-enb_nsd/README rename to magma/hackfest_magma-agw-enb_nsd/README diff --git a/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml b/magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml similarity index 100% rename from hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml rename to magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml diff --git a/hackfest_magma-agw-enb_vnfd/charms/magmagw b/magma/hackfest_magma-agw-enb_vnfd/charms/magmagw similarity index 100% rename from hackfest_magma-agw-enb_vnfd/charms/magmagw rename to magma/hackfest_magma-agw-enb_vnfd/charms/magmagw diff --git a/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml b/magma/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml similarity index 100% rename from hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml rename to magma/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml -- GitLab From 4786d37947a5926bbe39385481474041aa475c8e Mon Sep 17 00:00:00 2001 From: Gianpietro Lavado Date: Fri, 22 May 2020 23:42:26 +0000 Subject: [PATCH 03/16] updating to add slices --- magma/README.md | 32 ++++++++++++ magma/fb_magma_knf/fb_magma_vnfd.yaml | 20 +++++++ magma/fb_magma_ns/fb_magma_nsd.yaml | 24 +++++++++ .../hackfest_magma-agw-enb_nsd.yaml | 52 ------------------- .../magma-agw-enb_nsd.yaml | 46 ++++++++++++++++ ...-enb_vnfd.yaml => magma-agw-enb_vnfd.yaml} | 40 +++++++------- magma/magma_slice.yaml | 49 +++++++++++++++++ magma/params.yaml | 21 ++++++++ magma/pdu.yaml | 13 +++++ 9 files changed, 225 insertions(+), 72 deletions(-) create mode 100644 magma/README.md create mode 100644 magma/fb_magma_knf/fb_magma_vnfd.yaml create mode 100644 magma/fb_magma_ns/fb_magma_nsd.yaml delete mode 100644 magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml create mode 100644 magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml rename magma/hackfest_magma-agw-enb_vnfd/{hackfest_magma-agw-enb_vnfd.yaml => magma-agw-enb_vnfd.yaml} (85%) create mode 100644 magma/magma_slice.yaml create mode 100644 magma/params.yaml create mode 100644 magma/pdu.yaml diff --git a/magma/README.md b/magma/README.md new file mode 100644 index 00000000..a32d2036 --- /dev/null +++ b/magma/README.md @@ -0,0 +1,32 @@ +## Preparation + +This example expects a router (PNF) in the network, connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. + +1. Upload the descriptors to OSM +2. Add the PDU with the yaml file (emulated by a VyOS VM in this environment) +3. Upload the Slice template with `osm netslice-template-create magma_slice.yaml` +4. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. + +## Launching the Slice + +1. Edit the params.yaml and set a MetalLB address for your Magma Orc8r-proxy service, which AGW will connect to. Set a name and ID for th first AGW as well. +2. Launch the slice with: +`osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account whitecloud` + +## Verifying the services + +1. Visit the Orc8r at the KNF's nginx-proxy svc (https) with credentials admin@magma.test / password1234, then check that your AGW has been registered successfully (after proxy charms are finished) +2. Via this dashboard, add the test subscriber with the following parameters: + - IMSI: 722070000000008 + - KEY: c8eba87c1074edd06885cb0486718341 + - OPC: 17b6c0157895bcaa1efc1cef55033f5f + +3. The emulator is ready to connect, Day-2 primitives for this is WIP, in the meantime, the following commands can be used to connect the eNB and UE, respectively and in that order. + +### Configuring eNodeB example +srsenb --enb.name=dummyENB01 --enb.mcc=901 --enb.mnc=70 --enb.mme_addr=192.168.100.254 --enb.gtp_bind_addr=192.168.100.10 --enb.s1c_bind_addr=192.168.100.10 --enb_files.rr_config=/config/rr.conf --enb_files.sib_config=/config/sib.conf --enb_files.drb_config=/config/drb.conf /config/enb.conf.fauxrf + +### Attaching UE example +sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf + + diff --git a/magma/fb_magma_knf/fb_magma_vnfd.yaml b/magma/fb_magma_knf/fb_magma_vnfd.yaml new file mode 100644 index 00000000..86b73216 --- /dev/null +++ b/magma/fb_magma_knf/fb_magma_vnfd.yaml @@ -0,0 +1,20 @@ +vnfd-catalog: + schema-version: '3.0' + vnfd: + - id: fb_magma_knf + name: fb_magma_knf + short-name: fb_magma_knf + description: KNF with KDU using a helm-chart for Facebook magma orc8r + vendor: ATOS + version: '1.0' + mgmt-interface: + cp: mgmt + connection-point: + - name: mgmt + k8s-cluster: + nets: + - id: mgmtnet + external-connection-point-ref: mgmt + kdu: + - name: orc8r + helm-chart: magma/orc8r \ No newline at end of file diff --git a/magma/fb_magma_ns/fb_magma_nsd.yaml b/magma/fb_magma_ns/fb_magma_nsd.yaml new file mode 100644 index 00000000..b8d3081b --- /dev/null +++ b/magma/fb_magma_ns/fb_magma_nsd.yaml @@ -0,0 +1,24 @@ +nsd-catalog: + nsd: + - id: fb_magma_ns + name: fb_magma_ns + short-name: fb_magma_ns + description: NS consisting of a KNF fb_magma_knf connected to mgmt network + vendor: ATOS + version: '1.0' + constituent-vnfd: + - member-vnf-index: orc8r + vnfd-id-ref: fb_magma_knf + connection-point: + - name: nsd_cp_mgmt + vld-id-ref: mgmtnet + vld: + - id: mgmtnet + name: mgmtnet + type: ELAN + mgmt-network: true + vnfd-connection-point-ref: + - member-vnf-index-ref: orc8r + vnfd-id-ref: fb_magma_knf + vnfd-connection-point-ref: mgmt + diff --git a/magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml b/magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml deleted file mode 100644 index 50c3744a..00000000 --- a/magma/hackfest_magma-agw-enb_nsd/hackfest_magma-agw-enb_nsd.yaml +++ /dev/null @@ -1,52 +0,0 @@ -nsd:nsd-catalog: - nsd: - - id: hackfest_magma-agw-enb_nsd - name: hackfest_magma-agw-enb_nsd - short-name: hackfest_magma-agw-enb_nsd - description: Magma AGW 1.0.0 with tools & srsLTE connected to PNF Gateway - vendor: Whitestack - version: '1.0' - constituent-vnfd: - - member-vnf-index: 1 - vnfd-id-ref: hackfest_magma-agw-enb_vnfd - - member-vnf-index: 2 - vnfd-id-ref: hackfest_vyos_pnf - vld: - - id: mgmt - name: mgmt - short-name: mgmt - type: ELAN - mgmt-network: 'true' - vim-network-name: osm-ext - vnfd-connection-point-ref: - - member-vnf-index-ref: 1 - vnfd-id-ref: hackfest_magma-agw-enb_vnfd - vnfd-connection-point-ref: agw-mgmt - - member-vnf-index-ref: 1 - vnfd-id-ref: hackfest_magma-agw-enb_vnfd - vnfd-connection-point-ref: srsLTE-mgmt - - member-vnf-index-ref: 2 - vnfd-connection-point-ref: gateway_public - - id: sgi - name: sgi - short-name: sgi - type: ELAN - vim-network-name: sgi - vnfd-connection-point-ref: - - member-vnf-index-ref: 1 - vnfd-id-ref: hackfest_magma-agw-enb_vnfd - vnfd-connection-point-ref: agw-sgi - - member-vnf-index-ref: 2 - vnfd-id-ref: hackfest_vyos_pnf - vnfd-connection-point-ref: gateway_public - # - id: s1 - # name: s1 - # short-name: s1 - # type: ELAN - # vnfd-connection-point-ref: - # - member-vnf-index-ref: 1 - # vnfd-id-ref: hackfest_magma-agw-enb_vnfd - # vnfd-connection-point-ref: agw-s1 - # - member-vnf-index-ref: 1 - # vnfd-id-ref: hackfest_magma-agw-enb_vnfd - # vnfd-connection-point-ref: srsLTE-s1 diff --git a/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml b/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml new file mode 100644 index 00000000..2fd8a88e --- /dev/null +++ b/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml @@ -0,0 +1,46 @@ +nsd:nsd-catalog: + nsd: + - id: magma-agw-enb_nsd + name: magma-agw-enb_nsd + short-name: magma-agw-enb_nsd + description: Magma AGW 1.0.0 with tools & srsLTE connected to PNF Gateway + vendor: Whitestack + version: '1.0' + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: magma-agw-enb_vnfd + - member-vnf-index: '2' + vnfd-id-ref: vyos_pnf_charmed + connection-point: + - name: nsd_cp_mgmt + vld-id-ref: mgmt + - name: nsd_cp_sgi + vld-id-ref: sgi + vld: + - id: mgmt + name: mgmt + short-name: mgmt + type: ELAN + mgmt-network: true + vim-network-name: osm-ext + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-id-ref: magma-agw-enb_vnfd + vnfd-connection-point-ref: agw-mgmt + - member-vnf-index-ref: '1' + vnfd-id-ref: magma-agw-enb_vnfd + vnfd-connection-point-ref: srsLTE-mgmt + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: gateway_public + - id: sgi + name: sgi + short-name: sgi + type: ELAN + vim-network-name: sgi + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-id-ref: magma-agw-enb_vnfd + vnfd-connection-point-ref: agw-sgi + - member-vnf-index-ref: '2' + vnfd-id-ref: vyos_pnf_charmed + vnfd-connection-point-ref: gateway_public \ No newline at end of file diff --git a/magma/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml b/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml similarity index 85% rename from magma/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml rename to magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml index d9cace05..3405cddf 100644 --- a/magma/hackfest_magma-agw-enb_vnfd/hackfest_magma-agw-enb_vnfd.yaml +++ b/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml @@ -1,8 +1,8 @@ vnfd:vnfd-catalog: vnfd: - - id: hackfest_magma-agw-enb_vnfd - name: hackfest_magma-agw-enb_vnfd - short-name: hackfest_magma-agw-enb_vnfd + - id: magma-agw-enb_vnfd + name: magma-agw-enb_vnfd + short-name: magma-agw-enb_vnfd description: Magma AGW v1.0.0 with tools & srsLTE VDU vendor: Whitestack version: '1.0' @@ -19,8 +19,8 @@ vnfd:vnfd-catalog: storage-gb: 50 guest-epa: cpu-pinning-policy: DEDICATED - mempage-size: LARGE - image: 'magma101e' + mempage-size: LARGE + image: 'magma101_hf9' interface: - name: eth0 type: EXTERNAL @@ -39,12 +39,12 @@ vnfd:vnfd-catalog: position: '2' virtual-interface: type: PARAVIRT - external-connection-point-ref: agw-sgi + external-connection-point-ref: agw-sgi internal-connection-point: - id: agw-s1 name: agw-s1 - short-name: agw-s1 - port-security-enabled: 'false' + short-name: agw-s1 + port-security-enabled: 'false' monitoring-param: - id: agw_cpu_util nfvi-metric: cpu_utilization @@ -61,8 +61,8 @@ vnfd:vnfd-catalog: vm-flavor: vcpu-count: 2 memory-mb: 8192 - storage-gb: 100 - image: 'srsLTEfauxRFc' + storage-gb: 100 + image: 'srsLTEfauxRF_hf9' interface: - name: eth0 type: EXTERNAL @@ -77,7 +77,7 @@ vnfd:vnfd-catalog: internal-connection-point: - id: srsLTE-s1 name: srsLTE-s1 - short-name: srsLTE-s1 + short-name: srsLTE-s1 internal-vld: - id: internalS1 name: internalS1 @@ -96,7 +96,7 @@ vnfd:vnfd-catalog: ip-version: ipv4 subnet-address: 192.168.100.0/24 dhcp-params: - enabled: true + enabled: true connection-point: - name: agw-mgmt - name: agw-sgi @@ -121,9 +121,9 @@ vnfd:vnfd-catalog: name: add-net parameter: - name: orch_ip - value: + value: - name: orch_net - value: + value: - seq: '4' name: add-gw parameter: @@ -132,16 +132,16 @@ vnfd:vnfd-catalog: - name: agw_name value: - name: orch_ip - value: + value: - name: orch_net - value: + value: - seq: '5' name: add-hosts parameter: - name: orch_ip value: - seq: '6' - name: restart-magma + name: restart-magma config-primitive: - name: add-gw parameter: @@ -150,7 +150,7 @@ vnfd:vnfd-catalog: - name: agw_name default-value: - name: orch_ip - default-value: + default-value: - name: orch_net default-value: - name: del-gw @@ -158,7 +158,7 @@ vnfd:vnfd-catalog: - name: agw_id default-value: - name: orch_ip - default-value: + default-value: - name: orch_net default-value: - name: reset-id @@ -189,4 +189,4 @@ vnfd:vnfd-catalog: aggregation-type: AVERAGE vdu-monitoring-param: vdu-ref: magma-agw-vdu - vdu-monitoring-param-ref: agw_packets_sent + vdu-monitoring-param-ref: agw_packets_sent diff --git a/magma/magma_slice.yaml b/magma/magma_slice.yaml new file mode 100644 index 00000000..5f137da5 --- /dev/null +++ b/magma/magma_slice.yaml @@ -0,0 +1,49 @@ +# Copyright [2020] [Felipe Vicens] +# +# 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. + +#NST to test VLD connection between Network Services within the same VIM +nst: +- id: magma_slice_hackfest_nst + name: magma_slice_hackfest_nst + SNSSAI-identifier: + slice-service-type: eMBB + quality-of-service: + id: 1 + + netslice-subnet: + - id: slice_hackfest_nsd_1 + is-shared-nss: false + description: NetSlice Subnet (service) with magma agw + nsd-ref: magma-agw-enb_nsd + - id: slice_hackfest_nsd_2 + is-shared-nss: true + description: NetSlice Subnet (service) with magma orch and nms + nsd-ref: fb_magma_ns + + netslice-vld: + - id: slice_vld_mgmt + name: slice_vld_mgmt + type: ELAN + mgmt-network: true + nss-connection-point-ref: + - nss-ref: slice_hackfest_nsd_1 + nsd-connection-point-ref: nsd_cp_mgmt + - nss-ref: slice_hackfest_nsd_2 + nsd-connection-point-ref: nsd_cp_mgmt + - id: slice_vld_data1 + name: slice_vld_data1 + type: ELAN + nss-connection-point-ref: + - nss-ref: slice_hackfest_nsd_1 + nsd-connection-point-ref: nsd_cp_sgi \ No newline at end of file diff --git a/magma/params.yaml b/magma/params.yaml new file mode 100644 index 00000000..5cfed9c3 --- /dev/null +++ b/magma/params.yaml @@ -0,0 +1,21 @@ +netslice-subnet: +- id: slice_hackfest_nsd_1 + additionalParamsForVnf: + - member-vnf-index: '1' + additionalParams: + agw_id: 'agw_26' + agw_name: 'AGW26' + orch_ip: '172.21.250.110' ## change this to the MetalLB IP address of your orc8r_proxy service. + orch_net: 'osmnet' +- id: slice_hackfest_nsd_2 + additionalParamsForVnf: + - member-vnf-index: 'orc8r' + additionalParamsForKdu: + - kdu_name: orc8r + additionalParams: + proxyserviceloadBalancerIP: '172.21.250.110' # MetalLB IP Address +netslice-vld: +- name: slice_vld_mgmt + vim-network-name: "osm-ext" +- name: slice_vld_data1 + vim-network-name: "sgi" \ No newline at end of file diff --git a/magma/pdu.yaml b/magma/pdu.yaml new file mode 100644 index 00000000..fa01f2d9 --- /dev/null +++ b/magma/pdu.yaml @@ -0,0 +1,13 @@ +name: router01 +description: router +type: gateway +vim_accounts: [ fb99f5c5-f6b2-4a39-9a30-42012aa3f2c8 ] +shared: false +interfaces: + - name: eth0 + ip-address: 172.21.250.200 + vim-network-name: osm-ext + mgmt: true + - name: eth1 + ip-address: 192.168.239.7 + mgmt: false -- GitLab From 4b72a1bf90aa2e230ad11d3275d77c6d37f39620 Mon Sep 17 00:00:00 2001 From: lavado Date: Sat, 23 May 2020 17:07:39 +0200 Subject: [PATCH 04/16] Update README.md --- magma/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/magma/README.md b/magma/README.md index a32d2036..b7645887 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,4 +1,4 @@ -## Preparation +<## Preparation This example expects a router (PNF) in the network, connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. @@ -11,7 +11,13 @@ This example expects a router (PNF) in the network, connected to a shared manage 1. Edit the params.yaml and set a MetalLB address for your Magma Orc8r-proxy service, which AGW will connect to. Set a name and ID for th first AGW as well. 2. Launch the slice with: -`osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account whitecloud` +`osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account ` +3. Go to the K8sCluster and run (temporal workaround for running a command in a POD): +``` +NAMESPACE= +kubectl exec -it -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/component=controller -o jsonpath="{.items[0].metadata.name}") -- /var/opt/magma/bin/accessc add-existing -admin -cert /var/opt/magma/certs/admin_operator.pem admin_operator +error: unable to upgrade connection: container not found ("orc8r-controller") +``` ## Verifying the services -- GitLab From 06d58d39f3b4b9016151f086a7689a7ceb4b7db9 Mon Sep 17 00:00:00 2001 From: lavado Date: Sat, 23 May 2020 17:44:48 +0200 Subject: [PATCH 05/16] Update README.md --- magma/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/magma/README.md b/magma/README.md index b7645887..6138e881 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,4 +1,4 @@ -<## Preparation +## Preparation This example expects a router (PNF) in the network, connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. @@ -12,7 +12,7 @@ This example expects a router (PNF) in the network, connected to a shared manage 1. Edit the params.yaml and set a MetalLB address for your Magma Orc8r-proxy service, which AGW will connect to. Set a name and ID for th first AGW as well. 2. Launch the slice with: `osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account ` -3. Go to the K8sCluster and run (temporal workaround for running a command in a POD): +3. Go to the K8s cluster and run the following commands before the AGW's charm run (temporal workaround for running a command in a POD): ``` NAMESPACE= kubectl exec -it -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/component=controller -o jsonpath="{.items[0].metadata.name}") -- /var/opt/magma/bin/accessc add-existing -admin -cert /var/opt/magma/certs/admin_operator.pem admin_operator @@ -30,9 +30,9 @@ error: unable to upgrade connection: container not found ("orc8r-controller") 3. The emulator is ready to connect, Day-2 primitives for this is WIP, in the meantime, the following commands can be used to connect the eNB and UE, respectively and in that order. ### Configuring eNodeB example -srsenb --enb.name=dummyENB01 --enb.mcc=901 --enb.mnc=70 --enb.mme_addr=192.168.100.254 --enb.gtp_bind_addr=192.168.100.10 --enb.s1c_bind_addr=192.168.100.10 --enb_files.rr_config=/config/rr.conf --enb_files.sib_config=/config/sib.conf --enb_files.drb_config=/config/drb.conf /config/enb.conf.fauxrf +`srsenb --enb.name=dummyENB01 --enb.mcc=901 --enb.mnc=70 --enb.mme_addr=192.168.100.254 --enb.gtp_bind_addr=192.168.100.10 --enb.s1c_bind_addr=192.168.100.10 --enb_files.rr_config=/config/rr.conf --enb_files.sib_config=/config/sib.conf --enb_files.drb_config=/config/drb.conf /config/enb.conf.fauxrf` ### Attaching UE example -sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf +`sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf` -- GitLab From 40aa43e4cd4be09fbc52f1c5e6aef6d193134505 Mon Sep 17 00:00:00 2001 From: Gianpietro Lavado Date: Sat, 23 May 2020 18:28:26 +0000 Subject: [PATCH 06/16] adding cloud-inits to remove default-route and PNF charm --- magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml | 4 ++-- magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml | 5 +++-- .../hackfest_magma-agw-enb_vnfd/cloud_init/magmaagw_init | 9 +++++++++ magma/hackfest_magma-agw-enb_vnfd/cloud_init/srslte_init | 8 ++++++++ .../hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml | 2 ++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 magma/hackfest_magma-agw-enb_vnfd/cloud_init/magmaagw_init create mode 100644 magma/hackfest_magma-agw-enb_vnfd/cloud_init/srslte_init diff --git a/magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml b/magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml index d4285a68..7469abae 100644 --- a/magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml +++ b/magma/hackfest_gateway_pnf/hackfest_gateway_vnf.yaml @@ -31,9 +31,9 @@ vnfd:vnfd-catalog: config-primitive: - name: configure-remote parameter: - - name: filename + - name: magmaIP data-type: STRING - default-value: '/home/osm/touched' + default-value: '0.0.0.0' juju: charm: vyos-config version: '1.0' diff --git a/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml b/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml index 2fd8a88e..2304c981 100644 --- a/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml +++ b/magma/hackfest_magma-agw-enb_nsd/magma-agw-enb_nsd.yaml @@ -10,7 +10,7 @@ nsd:nsd-catalog: - member-vnf-index: '1' vnfd-id-ref: magma-agw-enb_vnfd - member-vnf-index: '2' - vnfd-id-ref: vyos_pnf_charmed + vnfd-id-ref: hackfest_vyos_pnf connection-point: - name: nsd_cp_mgmt vld-id-ref: mgmt @@ -31,6 +31,7 @@ nsd:nsd-catalog: vnfd-id-ref: magma-agw-enb_vnfd vnfd-connection-point-ref: srsLTE-mgmt - member-vnf-index-ref: '2' + vnfd-id-ref: hackfest_vyos_pnf vnfd-connection-point-ref: gateway_public - id: sgi name: sgi @@ -42,5 +43,5 @@ nsd:nsd-catalog: vnfd-id-ref: magma-agw-enb_vnfd vnfd-connection-point-ref: agw-sgi - member-vnf-index-ref: '2' - vnfd-id-ref: vyos_pnf_charmed + vnfd-id-ref: hackfest_vyos_pnf vnfd-connection-point-ref: gateway_public \ No newline at end of file diff --git a/magma/hackfest_magma-agw-enb_vnfd/cloud_init/magmaagw_init b/magma/hackfest_magma-agw-enb_vnfd/cloud_init/magmaagw_init new file mode 100644 index 00000000..134776f9 --- /dev/null +++ b/magma/hackfest_magma-agw-enb_vnfd/cloud_init/magmaagw_init @@ -0,0 +1,9 @@ +#cloud-config +runcmd: + - route delete -net 0.0.0.0/0 gw 172.21.251.254 + - route add -net 10.100.0.0/16 gw 172.21.251.254 + - route add -net 10.101.0.0/16 172.21.251.254 + - route add -net 172.21.0.0/16 gw 172.21.251.254 + - route add -net 172.22.0.0/16 gw 172.21.251.254 + - route add -net 192.168.170.0/24 gw 172.21.251.254 + - route add -net 0.0.0.0/0 gw 192.168.239.7 diff --git a/magma/hackfest_magma-agw-enb_vnfd/cloud_init/srslte_init b/magma/hackfest_magma-agw-enb_vnfd/cloud_init/srslte_init new file mode 100644 index 00000000..53aea465 --- /dev/null +++ b/magma/hackfest_magma-agw-enb_vnfd/cloud_init/srslte_init @@ -0,0 +1,8 @@ +#cloud-config +runcmd: + - route delete -net 0.0.0.0/0 gw 172.21.251.254 + - route add -net 10.100.0.0/16 gw 172.21.251.254 + - route add -net 10.101.0.0/16 172.21.251.254 + - route add -net 172.21.0.0/16 gw 172.21.251.254 + - route add -net 172.22.0.0/16 gw 172.21.251.254 + - route add -net 192.168.170.0/24 gw 172.21.251.254 \ No newline at end of file diff --git a/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml b/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml index 3405cddf..33e70765 100644 --- a/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml +++ b/magma/hackfest_magma-agw-enb_vnfd/magma-agw-enb_vnfd.yaml @@ -13,6 +13,7 @@ vnfd:vnfd-catalog: name: magma-agw-vdu description: magma-agw-vdu count: 1 + cloud-init-file: magmaagw_init vm-flavor: vcpu-count: 2 memory-mb: 4096 @@ -58,6 +59,7 @@ vnfd:vnfd-catalog: name: srsLTE-vdu description: srsLTE-vdu count: 1 + cloud-init-file: srslte_init vm-flavor: vcpu-count: 2 memory-mb: 8192 -- GitLab From 8e0ad5d9fa5e7293f4f0ef44e882d23f5099d391 Mon Sep 17 00:00:00 2001 From: lavado Date: Sat, 23 May 2020 20:41:33 +0200 Subject: [PATCH 07/16] Update README.md --- magma/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/magma/README.md b/magma/README.md index 6138e881..c8120189 100644 --- a/magma/README.md +++ b/magma/README.md @@ -35,4 +35,17 @@ error: unable to upgrade connection: container not found ("orc8r-controller") ### Attaching UE example `sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf` +## Testing traffic + +After UE is attached (at emulator machine), a default route should be added (pending to put as Day-2 primitive), pointing to the GTP tunnel endpoint: + +`sudo route add -net 0.0.0.0/0 gw 192.168.128.1` + +Finally, a Day-2 primitive must be executed against the PNF to allow traffic from the specific Magma SGI IP address: + +`osm ns-action magma_slice.slice_hackfest_nsd_1 --vnf_name 2 --action_name configure-remote --params '{magmaIP: "192.168.239.10"}'` + +With this, the UE machine will have access to Internet through the AGW and then the VyOS PNF. + + -- GitLab From 737d9c6b378179d1d3a6476bc81f3b7c871be3e5 Mon Sep 17 00:00:00 2001 From: lavado Date: Sat, 23 May 2020 20:44:15 +0200 Subject: [PATCH 08/16] Update README.md --- magma/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/magma/README.md b/magma/README.md index c8120189..b23e40fc 100644 --- a/magma/README.md +++ b/magma/README.md @@ -2,7 +2,11 @@ This example expects a router (PNF) in the network, connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. -1. Upload the descriptors to OSM +1. Upload the descriptors to OSM, make sure you add the following charms to your package: + + * PNF --> https://github.com/charmed-osm/vyos-config + * AGW VNF --> https://github.com/charmed-osm/magmagw + 2. Add the PDU with the yaml file (emulated by a VyOS VM in this environment) 3. Upload the Slice template with `osm netslice-template-create magma_slice.yaml` 4. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. -- GitLab From 80b604a88effa403002ff92ca56fa381e5d2bffa Mon Sep 17 00:00:00 2001 From: lavado Date: Sat, 23 May 2020 20:53:35 +0200 Subject: [PATCH 09/16] Update README.md --- magma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/magma/README.md b/magma/README.md index b23e40fc..50d6d809 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,6 +1,6 @@ ## Preparation -This example expects a router (PNF) in the network, connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. +This example requires a PNF, emulated with a VyOS router (image [here](http://osm-download.etsi.org/ftp/osm-6.0-six/7th-hackfest/images/vyos-1.1.7-cloudinit.qcow2.tgz)), connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. 1. Upload the descriptors to OSM, make sure you add the following charms to your package: -- GitLab From d64e30775a1008dda598da7b9c00bed9b20bf29f Mon Sep 17 00:00:00 2001 From: Gianpietro Lavado Date: Sat, 23 May 2020 22:14:29 +0000 Subject: [PATCH 10/16] adds charms --- magma/.gitignore | 2 ++ magma/hackfest_gateway_pnf/charms/.DS_Store | Bin 0 -> 8196 bytes magma/hackfest_gateway_pnf/charms/vyos-config | 1 + 3 files changed, 3 insertions(+) create mode 100644 magma/.gitignore create mode 100644 magma/hackfest_gateway_pnf/charms/.DS_Store create mode 160000 magma/hackfest_gateway_pnf/charms/vyos-config diff --git a/magma/.gitignore b/magma/.gitignore new file mode 100644 index 00000000..31a1da8a --- /dev/null +++ b/magma/.gitignore @@ -0,0 +1,2 @@ +build* +*tar.gz \ No newline at end of file diff --git a/magma/hackfest_gateway_pnf/charms/.DS_Store b/magma/hackfest_gateway_pnf/charms/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9a733bc2bb969d4c2f197caeb8fe16a6d90a128d GIT binary patch literal 8196 zcmeHMU2GIp6h2=mFhd7A{7CD%;L-vGE$NT^q$04il^=mn*_M`qY-e`{m@u8GJF{C# zDfUg#@J3XKCTgP5^uZUv-zSX;{v`fkh#Gw`CO)YzMofJ1+_}?6TKa@BB+O0j{qEdz z&OP^@`R>e~St3Gf(QG2BCL)EaK)r&Sn-n1zbxJ9VM#>q%_C#waPae5+gzPEW@jx7b zI0A75;t0eMh$C=2M1bGfqA1h6_oXy$;|RnNxFaJVo)0Om0@D$WN(>(z+=M9rqeub5 z!hOyILYq{C=?F(9hNe8H%pMS#B1$nJ%~_rj>Wt|KMzS-UXC?B&J8%WA2c>zL)nb-nX_gqs;a1S z)yFc&yunOh1Vz8qC>#`59Y%007xgWo{SWPjo7`^Mo8#O4ZeqK0Dzv$Y?K^fZ)OKa{1ts3e-hsgO zTz|h+@ENmurO&(HnfKg|f+ghLdCw{KyM9)mpEsO*(J=yRtK($slNOIv`uT$AI31pE zi)jw@1lEZ_$fk&TdVQ}Dw1typb-n0Y`z)TzE?Mn7qu*n*OJS%(9h+B`T(;uAhP5r5 zTd!8?^A{{!q-nhzNH?&L*jAxy&^Ci(2Mj-Nxu)$N?Jn8AopY>C*XXzOE2cjSnh=LHeS;KA=zr0Vo<3~_ohQG)TUQSPSi>uQft$VQD31Y)J*NP zoBF6g!*rIOr!l%nm+39~kUpbp^aK4uztbP|Ctat%0L+1gxtND4EXPXJVHKLN37fG6 zJFo|P(Sb+Ni!2P}kcWc;0u)ig6L=D5@HC#mIlPFM@G@S(7~aKucpo3(b9{j>@fE(u z&-fL;$<>vOlX~~~$|d4D<1}ZONgbWxvU4{lb#mMG9gDR`ZeLP=J5MtCuEkZU6|2`Y zZ+K|y1QjOT{2TcBZ%T$dltc>&I8LyT_*a?m_av8S_l_Tj$;YINDQlfj1n>0OQoAO( zT+y#6x)NS$b;$~q&x4fJCF>PMFO!mnWRuDVK%XIHYqj+XQ(d1ar7hY2L{RiCrgubSqn74m}Fbfq}h-xguYBZpQnVLo$+OaKU>po=Ag~JhJ zk27QY;o$^^FpN_;&8&SYWbIizi|2427w`gJ#cOySZ!mu^;u0?7ZM=gI@F}k1n@P;w zHHo=DPS4y@rr4*@Bjb+ literal 0 HcmV?d00001 diff --git a/magma/hackfest_gateway_pnf/charms/vyos-config b/magma/hackfest_gateway_pnf/charms/vyos-config new file mode 160000 index 00000000..6785ab97 --- /dev/null +++ b/magma/hackfest_gateway_pnf/charms/vyos-config @@ -0,0 +1 @@ +Subproject commit 6785ab97fda26956af0891589ee0e3e3f45c53cc -- GitLab From b7a4021bdaa7ac43120b90a50f674081d0412acf Mon Sep 17 00:00:00 2001 From: Gianpietro Lavado Date: Sat, 23 May 2020 22:17:39 +0000 Subject: [PATCH 11/16] adds scripts --- magma/.gitignore | 1 - magma/build_slice.sh | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100755 magma/build_slice.sh diff --git a/magma/.gitignore b/magma/.gitignore index 31a1da8a..b6ef012c 100644 --- a/magma/.gitignore +++ b/magma/.gitignore @@ -1,2 +1 @@ -build* *tar.gz \ No newline at end of file diff --git a/magma/build_slice.sh b/magma/build_slice.sh new file mode 100755 index 00000000..4004b56b --- /dev/null +++ b/magma/build_slice.sh @@ -0,0 +1,23 @@ +tar -cvzf hackfest_magma-agw-enb_nsd.tar.gz hackfest_magma-agw-enb_nsd/ +tar -cvzf hackfest_magma-agw-enb_vnfd.tar.gz hackfest_magma-agw-enb_vnfd/ +tar -cvzf hackfest_gateway_pnf.tar.gz hackfest_gateway_pnf/ +tar -cvzf fb_magma_knf.tar.gz fb_magma_knf/ +tar -cvzf fb_magma_ns.tar.gz fb_magma_ns/ + +osm nst-delete magma_slice_hackfest_nst +osm nsd-delete hackfest_magma-agw-enb_nsd +osm nsd-delete fb_magma_ns +osm vnfd-delete hackfest_magma-agw-enb_vnfd +osm vnfd-delete hackfest_gateway_pnf +osm vnfd-deletefb_magma_knf + +osm vnfd-create hackfest_magma-agw-enb_vnfd.tar.gz +osm vnfd-create hackfest_gateway_pnf.tar.gz +osm vnfd-create fb_magma_knf.tar.gz +osm nsd-create fb_magma_ns.tar.gz +osm nsd-create hackfest_magma-agw-enb_nsd.tar.gz + +osm netslice-template-create magma_slice.yaml + +osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account whitecloud +osm ns-list | grep slice_hackfest_nsd_1 | awk '{print $4}' | xargs -l1 juju switch \ No newline at end of file -- GitLab From 586aa3959d242dc35984ee04cef549d69a1c570b Mon Sep 17 00:00:00 2001 From: lavado Date: Sun, 24 May 2020 00:29:21 +0200 Subject: [PATCH 12/16] Update README.md --- magma/README.md | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/magma/README.md b/magma/README.md index 50d6d809..569deea0 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,22 +1,22 @@ -## Preparation +## Diagram + -This example requires a PNF, emulated with a VyOS router (image [here](http://osm-download.etsi.org/ftp/osm-6.0-six/7th-hackfest/images/vyos-1.1.7-cloudinit.qcow2.tgz)), connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. -1. Upload the descriptors to OSM, make sure you add the following charms to your package: +## Preparation - * PNF --> https://github.com/charmed-osm/vyos-config - * AGW VNF --> https://github.com/charmed-osm/magmagw +This example requires a PNF, emulated with a VyOS router (image [here](http://osm-download.etsi.org/ftp/osm-6.0-six/7th-hackfest/images/vyos-1.1.7-cloudinit.qcow2.tgz)), connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. -2. Add the PDU with the yaml file (emulated by a VyOS VM in this environment) -3. Upload the Slice template with `osm netslice-template-create magma_slice.yaml` +1. Add the PDU with the yaml file (emulated by a VyOS VM in this environment) +2. Upload the packages to OSM, the "build_slice.sh" file contain some useful commands. 4. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. ## Launching the Slice -1. Edit the params.yaml and set a MetalLB address for your Magma Orc8r-proxy service, which AGW will connect to. Set a name and ID for th first AGW as well. +1. Edit the params.yaml and set an address for your Magma Orc8r-proxy service, which AGW will connect to. Same IP address should go to 'proxyserviceloadBalancerIP' and 'orch_ip', and should belong to your K8 Cluster MetalLB pool. +2. Set a name and ID for the first AGW, in parameters agw_id and agw_name (they need to be different each time you launch a new slice) 2. Launch the slice with: `osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account ` -3. Go to the K8s cluster and run the following commands before the AGW's charm run (temporal workaround for running a command in a POD): +3. After a few seconds, go to the K8s cluster and run the following commands before the AGW's charm run (temporal workaround for running a command in a POD): ``` NAMESPACE= kubectl exec -it -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/component=controller -o jsonpath="{.items[0].metadata.name}") -- /var/opt/magma/bin/accessc add-existing -admin -cert /var/opt/magma/certs/admin_operator.pem admin_operator @@ -25,31 +25,40 @@ error: unable to upgrade connection: container not found ("orc8r-controller") ## Verifying the services -1. Visit the Orc8r at the KNF's nginx-proxy svc (https) with credentials admin@magma.test / password1234, then check that your AGW has been registered successfully (after proxy charms are finished) -2. Via this dashboard, add the test subscriber with the following parameters: +1. Visit the Orc8r dashboard at the KNF's nginx-proxy svc IP, with https and credentials admin@magma.test / password1234, then check that your AGW has been registered successfully under the list of Gateways here: https://172.21.250.104/nms/osmnet/gateways (after proxy charms are finished) +2. Via this same dashboard, add the test subscriber with the following parameters (this will migrate to Day-2 primitive) - IMSI: 722070000000008 - KEY: c8eba87c1074edd06885cb0486718341 - OPC: 17b6c0157895bcaa1efc1cef55033f5f -3. The emulator is ready to connect, Day-2 primitives for this is WIP, in the meantime, the following commands can be used to connect the eNB and UE, respectively and in that order. +3. The emulator is ready to connect, Day-2 primitives for this is WIP, in the meantime, the following commands can be used to connect the eNB and UE, respectively and in that order (from different terminals) -### Configuring eNodeB example +#### Configuring eNodeB example `srsenb --enb.name=dummyENB01 --enb.mcc=901 --enb.mnc=70 --enb.mme_addr=192.168.100.254 --enb.gtp_bind_addr=192.168.100.10 --enb.s1c_bind_addr=192.168.100.10 --enb_files.rr_config=/config/rr.conf --enb_files.sib_config=/config/sib.conf --enb_files.drb_config=/config/drb.conf /config/enb.conf.fauxrf` -### Attaching UE example +#### Attaching UE example `sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf` ## Testing traffic -After UE is attached (at emulator machine), a default route should be added (pending to put as Day-2 primitive), pointing to the GTP tunnel endpoint: +After UE is attached (at emulator machine), the "tun_srsue" will appear, and a default route should be added (pending to put as Day-2 primitive), pointing to the GTP tunnel endpoint: `sudo route add -net 0.0.0.0/0 gw 192.168.128.1` -Finally, a Day-2 primitive must be executed against the PNF to allow traffic from the specific Magma SGI IP address: +Finally, a Day-2 primitive must be executed against the PNF (VyOS) to allow traffic from the specific Magma SGI IP address, for example, if it's 192.168.239.10: `osm ns-action magma_slice.slice_hackfest_nsd_1 --vnf_name 2 --action_name configure-remote --params '{magmaIP: "192.168.239.10"}'` With this, the UE machine will have access to Internet through the AGW and then the VyOS PNF. +## Additional tests + +* Additional slice instances can be launched (changing agw_id and agw_name), and we should see that just the AGW+emulator NS is launched (Orc8r NS is shared) +## Pending tests: +* Placement +* Metrics collection +* Automatic and manual scaling +* KNF Primitives (via additional Webhost NS that will be added) +* SDN Assist in the internal S1 VLD -- GitLab From e961310ee21dc6f9ab5f456c1f16d9a6cb4462af Mon Sep 17 00:00:00 2001 From: lavado Date: Sun, 24 May 2020 00:33:43 +0200 Subject: [PATCH 13/16] Update README.md --- magma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/magma/README.md b/magma/README.md index 569deea0..e9459192 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,6 +1,6 @@ ## Diagram - +![osm9hackfest_diagram](/uploads/9d9d85dc23d87ae30de57115b413388b/Screen_Shot_2020-05-23_at_17.27.58.png) ## Preparation -- GitLab From 221557fa0acf094d3f8596ad78b971ff534a2a69 Mon Sep 17 00:00:00 2001 From: lavado Date: Sun, 24 May 2020 00:35:23 +0200 Subject: [PATCH 14/16] Update README.md --- magma/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/magma/README.md b/magma/README.md index e9459192..7e59658a 100644 --- a/magma/README.md +++ b/magma/README.md @@ -55,8 +55,9 @@ With this, the UE machine will have access to Internet through the AGW and then * Additional slice instances can be launched (changing agw_id and agw_name), and we should see that just the AGW+emulator NS is launched (Orc8r NS is shared) -## Pending tests: -* Placement +## Pending additions: +* Navigating from a desktop browser (VNC not working properly) +* Placement tests * Metrics collection * Automatic and manual scaling * KNF Primitives (via additional Webhost NS that will be added) -- GitLab From ee15c0ee301834aee7ece5003fca1caf237069c8 Mon Sep 17 00:00:00 2001 From: lavado Date: Sun, 24 May 2020 00:48:27 +0200 Subject: [PATCH 15/16] Update README.md --- magma/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/magma/README.md b/magma/README.md index 7e59658a..882bae4c 100644 --- a/magma/README.md +++ b/magma/README.md @@ -10,6 +10,9 @@ This example requires a PNF, emulated with a VyOS router (image [here](http://os 2. Upload the packages to OSM, the "build_slice.sh" file contain some useful commands. 4. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. +Note: a sandbox for testing is available at hackfest@172.21.248.19 (~/osm-packages/magma is synced with this repo) + + ## Launching the Slice 1. Edit the params.yaml and set an address for your Magma Orc8r-proxy service, which AGW will connect to. Same IP address should go to 'proxyserviceloadBalancerIP' and 'orch_ip', and should belong to your K8 Cluster MetalLB pool. -- GitLab From f2d3cc1a2aec02d07b57d9cdd6e5da95659feb8c Mon Sep 17 00:00:00 2001 From: Felipe Vicens Date: Sun, 24 May 2020 18:00:55 +0200 Subject: [PATCH 16/16] Updating readme removing workaround for certificates Signed-off-by: Felipe Vicens --- magma/README.md | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/magma/README.md b/magma/README.md index 882bae4c..f0210812 100644 --- a/magma/README.md +++ b/magma/README.md @@ -1,3 +1,5 @@ +# Hackfest Magma + ## Diagram ![osm9hackfest_diagram](/uploads/9d9d85dc23d87ae30de57115b413388b/Screen_Shot_2020-05-23_at_17.27.58.png) @@ -7,28 +9,21 @@ This example requires a PNF, emulated with a VyOS router (image [here](http://osm-download.etsi.org/ftp/osm-6.0-six/7th-hackfest/images/vyos-1.1.7-cloudinit.qcow2.tgz)), connected to a shared management network (osm-ext in this example) and to a shared internal "sgi" network where the Slice will be placed. 1. Add the PDU with the yaml file (emulated by a VyOS VM in this environment) -2. Upload the packages to OSM, the "build_slice.sh" file contain some useful commands. -4. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. +1. Upload the packages to OSM, the "build_slice.sh" file contain some useful commands. +1. Make sure you got the images for AGW and srsLTE emulator, available at ETSI VIM or at the hackfest@172.21.248.19 home directory. Note: a sandbox for testing is available at hackfest@172.21.248.19 (~/osm-packages/magma is synced with this repo) - ## Launching the Slice 1. Edit the params.yaml and set an address for your Magma Orc8r-proxy service, which AGW will connect to. Same IP address should go to 'proxyserviceloadBalancerIP' and 'orch_ip', and should belong to your K8 Cluster MetalLB pool. -2. Set a name and ID for the first AGW, in parameters agw_id and agw_name (they need to be different each time you launch a new slice) -2. Launch the slice with: +1. Set a name and ID for the first AGW, in parameters agw_id and agw_name (they need to be different each time you launch a new slice) +1. Launch the slice with: `osm nsi-create --nsi_name magma_slice --nst_name magma_slice_hackfest_nst --config_file params.yaml --vim_account ` -3. After a few seconds, go to the K8s cluster and run the following commands before the AGW's charm run (temporal workaround for running a command in a POD): -``` -NAMESPACE= -kubectl exec -it -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l app.kubernetes.io/component=controller -o jsonpath="{.items[0].metadata.name}") -- /var/opt/magma/bin/accessc add-existing -admin -cert /var/opt/magma/certs/admin_operator.pem admin_operator -error: unable to upgrade connection: container not found ("orc8r-controller") -``` ## Verifying the services -1. Visit the Orc8r dashboard at the KNF's nginx-proxy svc IP, with https and credentials admin@magma.test / password1234, then check that your AGW has been registered successfully under the list of Gateways here: https://172.21.250.104/nms/osmnet/gateways (after proxy charms are finished) +1. Visit the Orc8r dashboard at the KNF's nginx-proxy svc IP, with https and credentials admin@magma.test / password1234, then check that your AGW has been registered successfully under the list of Gateways [here](https://172.21.250.104/nms/osmnet/gateways) (after proxy charms are finished) 2. Via this same dashboard, add the test subscriber with the following parameters (this will migrate to Day-2 primitive) - IMSI: 722070000000008 - KEY: c8eba87c1074edd06885cb0486718341 @@ -36,10 +31,12 @@ error: unable to upgrade connection: container not found ("orc8r-controller") 3. The emulator is ready to connect, Day-2 primitives for this is WIP, in the meantime, the following commands can be used to connect the eNB and UE, respectively and in that order (from different terminals) -#### Configuring eNodeB example +### Configuring eNodeB example + `srsenb --enb.name=dummyENB01 --enb.mcc=901 --enb.mnc=70 --enb.mme_addr=192.168.100.254 --enb.gtp_bind_addr=192.168.100.10 --enb.s1c_bind_addr=192.168.100.10 --enb_files.rr_config=/config/rr.conf --enb_files.sib_config=/config/sib.conf --enb_files.drb_config=/config/drb.conf /config/enb.conf.fauxrf` -#### Attaching UE example +### Attaching UE example + `sudo srsue --usim.imsi=722070000000008 --usim.k=c8eba87c1074edd06885cb0486718341 --usim.algo=milenage --usim.opc=17b6c0157895bcaa1efc1cef55033f5f --nas.apn=oai.ipv4 /config/ue.conf.fauxrf` ## Testing traffic @@ -56,13 +53,13 @@ With this, the UE machine will have access to Internet through the AGW and then ## Additional tests -* Additional slice instances can be launched (changing agw_id and agw_name), and we should see that just the AGW+emulator NS is launched (Orc8r NS is shared) +- Additional slice instances can be launched (changing agw_id and agw_name), and we should see that just the AGW+emulator NS is launched (Orc8r NS is shared) -## Pending additions: -* Navigating from a desktop browser (VNC not working properly) -* Placement tests -* Metrics collection -* Automatic and manual scaling -* KNF Primitives (via additional Webhost NS that will be added) -* SDN Assist in the internal S1 VLD +## Pending additions +- Navigating from a desktop browser (VNC not working properly) +- Placement tests +- Metrics collection +- Automatic and manual scaling +- KNF Primitives (via additional Webhost NS that will be added) +- SDN Assist in the internal S1 VLD -- GitLab