blob: ed378490be68cc4267dc28d0352b907ad071b8bb [file] [log] [blame]
---
# Copyright 2018-present Open Networking Foundation
#
# 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.
{{- if $.Values.bng.external.enabled }}
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- custom_types/switch.yaml
- custom_types/onosapp.yaml
- custom_types/switchport.yaml
- custom_types/portinterface.yaml
- custom_types/bngportmapping.yaml
- custom_types/serviceinstanceattribute.yaml
description: Configures the Ponsim SEBA POD fabric
topology_template:
node_templates:
# Fabric configuration
switch#leaf_1:
type: tosca.nodes.Switch
properties:
{{- if not $.Values.fabric.stratum.enabled }}
driver: "ofdpa-ovs"
ofId: of:0000000000000001
{{- else }}
driver: "stratum-bmv2"
pipeconf: 'org.onosproject.pipelines.fabric'
managementAddress: "grpc://mininet-stratum:50001?device_id=1"
ofId: device:agg1
{{- end }}
ipv4Loopback: 192.168.0.201
ipv4NodeSid: 17
isEdgeRouter: True
name: leaf_1
routerMac: 00:00:02:01:06:01
# Setup the OLT switch ports
{{- range $i, $junk := until (.Values.numOlts|int) }}
port#olt{{ $i }}_port:
type: tosca.nodes.SwitchPort
properties:
portId: {{ add 2 $i }}
host_learning: false
requirements:
- switch:
node: switch#leaf_1
relationship: tosca.relationships.BelongsToOne
{{- end }}
# Port connected to the BNG
port#bng_port:
type: tosca.nodes.SwitchPort
properties:
portId: 1
requirements:
- switch:
node: switch#leaf_1
relationship: tosca.relationships.BelongsToOne
# Setup the fabric switch port where the external
# router is connected to
bngmapping:
type: tosca.nodes.BNGPortMapping
properties:
s_tag: "any"
switch_port: 1
onos_app#dhcpl2relay:
type: tosca.nodes.ONOSApp
properties:
name: dhcpl2relay
must-exist: true
# DHCP L2 Relay config
dhcpl2relay-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration/apps/org.opencord.dhcpl2relay
value: >
{
"dhcpl2relay" : {
"useOltUplinkForServerPktInOut" : false,
{{- if not $.Values.fabric.stratum.enabled }}
"dhcpServerConnectPoints" : [ "of:0000000000000001/1" ]
{{- else }}
"dhcpServerConnectPoints" : [ "device:agg1/1" ]
{{- end }}
}
}
requirements:
- service_instance:
node: onos_app#dhcpl2relay
relationship: tosca.relationships.BelongsToOne
{{- end }}
{{- if $.Values.bng.embedded.enabled }}
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- custom_types/switch.yaml
- custom_types/onosapp.yaml
- custom_types/switchport.yaml
- custom_types/portinterface.yaml
- custom_types/vrouterserviceinstance.yaml
- custom_types/vrouterstaticroute.yaml
- custom_types/fabricipaddress.yaml
- custom_types/serviceinstanceattribute.yaml
description: Configures the Ponsim SEBA POD fabric
topology_template:
node_templates:
# Fabric configuration
switch#agg_sw:
type: tosca.nodes.Switch
properties:
driver: "stratum-bmv2"
pipeconf: 'org.onosproject.pipelines.fabric-bng'
managementAddress: "grpc://mininet-stratum:50001?device_id=1"
ipv4Loopback: 192.168.0.201
ipv4NodeSid: 17
isEdgeRouter: True
ofId: device:agg1
name: AGG SWITCH
routerMac: 00:00:02:01:06:01
# Setup the OLT switch ports
{{- range $i, $junk := until (.Values.numOlts|int) }}
port#olt{{ $i }}_port:
type: tosca.nodes.SwitchPort
properties:
portId: {{ add 3 $i }}
host_learning: false
requirements:
- switch:
node: switch#agg_sw
relationship: tosca.relationships.BelongsToOne
interface#access_interface_{{ $i }}:
type: tosca.nodes.PortInterface
properties:
name: access
requirements:
- port:
node: port#olt{{ $i }}_port
relationship: tosca.relationships.BelongsToOne
ip#access_ip_{{ $i }}:
type: tosca.nodes.FabricIpAddress
properties:
ip: "10.255.255.{{ $i }}/24"
description: access_ip_{{ $i }}
requirements:
- interface:
node: interface#access_interface_{{ $i }}
relationship: tosca.relationships.BelongsToOne
{{- end }}
# Port connected to the PPPoE Server
port#pppoe_server_port:
type: tosca.nodes.SwitchPort
properties:
portId: 1
requirements:
- switch:
node: switch#agg_sw
relationship: tosca.relationships.BelongsToOne
interface#ppoe_server_interface_1:
type: tosca.nodes.PortInterface
properties:
vlanUntagged: 100
name: pppoe_server
requirements:
- port:
node: port#pppoe_server_port
relationship: tosca.relationships.BelongsToOne
# Port connected to the Upstream router
port#upstream_port:
type: tosca.nodes.SwitchPort
properties:
portId: 2
requirements:
- switch:
node: switch#agg_sw
relationship: tosca.relationships.BelongsToOne
interface#upstream_interface_1:
type: tosca.nodes.PortInterface
properties:
vlanUntagged: 200
name: upstream
requirements:
- port:
node: port#upstream_port
relationship: tosca.relationships.BelongsToOne
ip#upstream_ip_1:
type: tosca.nodes.FabricIpAddress
properties:
ip: "10.10.10.254/24"
description: upstream_ip_1
requirements:
- interface:
node: interface#upstream_interface_1
relationship: tosca.relationships.BelongsToOne
# Upstream host configuration
upstream-host-config:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration
value: >
{
"hosts": {
"00:66:77:88:99:AA/None": {
"basic": {
"name": "Upstream",
"ips": [
"10.10.10.1"
],
"locations": [
"device:agg1/2"
]
}
}
}
}
requirements:
- service_instance:
node: ip#upstream_ip_1
relationship: tosca.relationships.BelongsToOne
onos_app#segmentrouting:
type: tosca.nodes.ONOSApp
properties:
name: org.onosproject.segmentrouting
must-exist: true
segmentrouting-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/configuration/org.onosproject.segmentrouting.SegmentRoutingManager?preset=true
value: >
{
"routeSimplification": "false",
"routeDoubleTaggedHosts": "true",
"respondToUnknownHosts": "true",
"defaultInternalVlan": "4094",
"pwTransportVlan": "4090",
"activeProbing": "true",
"singleHomedDown": "false",
"symmetricProbing": "false"
}
requirements:
- service_instance:
node: onos_app#segmentrouting
relationship: tosca.relationships.BelongsToOne
# VRouter and default route.
vrouter#my_vrouter:
type: tosca.nodes.VRouterServiceInstance
properties:
name: my_vrouter
route#default_route:
type: tosca.nodes.VRouterStaticRoute
properties:
prefix: "0.0.0.0/0"
next_hop: "10.10.10.1"
requirements:
- vrouter:
node: vrouter#my_vrouter
relationship: tosca.relationships.BelongsToOne
# BNG App and its configuration for the PPPoE server relay.
onos_app#bng:
type: tosca.nodes.ONOSApp
properties:
name: org.opencord.bng
must-exist: true
bng-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration/apps/org.opencord.bng
value: >
{
"pppoerelay": {
"oltConnectPoint": "device:agg1/3",
"pppoeServerConnectPoint": "device:agg1/1"
},
"bng": {
"bnguDeviceId": "device:agg1"
}
}
requirements:
- service_instance:
node: onos_app#bng
relationship: tosca.relationships.BelongsToOne
{{- end }}