Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This page shows three different SDN-R setup examples and the connectivity to other components.

Single (tiny setup)

For development of in case of small volume without any high availability capability a single ODL instance is sufficient.

PlantUML Macro
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Script to convert yang modules into other formats
' Author: martin.skorupski@highstreet-technologies.com
' 
' Copyright 2019 higshtreet technologies GmbH
' 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.
' 

@startuml

' Diagram
title 
  SDN-R tiny setup
  Connectivity
end title

box "Network" #eeeeee
  participant "<b>PNF00</b>\nnetconf-server" as pnf00
  participant "<b>PNF01</b>\nnetconf-server" as pnf01 
  participant "<b>PNF99</b>\nnetconf-server" as pnf99 
end box 

box "ONAP SDN-R" #ffffff
  participant "<b>ODL</b>\nnetconf-client" as odl01
end box

box "ONAP A&AI" 
  participant "<b>AAI</b>\nhttps-server" as aai01
end box
 
box "ONAP DCAE" 
  participant "<b>VES Collector</b>\nhttps-server" as ves01
end box

autonumber "<b>[Con000]"
group NetConf\nautomated configuration management
  pnf00 <-> odl01: tcp/ssh/netconf/830 
  pnf01 <-> odl01: tcp/ssh/netconf/830 
  pnf99 <-> odl01: tcp/ssh/netconf/830
end group

group sdnr-interfacing-with-dcae
  odl01 <-> ves01: https:8443
end group

group sdnr-interfacing-with-aai
  odl01 <-> aai01: https:8443
end group

' End Diagram
' Format
header
  <b><font color=#8888ff>License</font></b>
  <b><font color=#8888ff>Apache 2.0</font></b>
end header
'caption "\n UML Formatting"

right footer 
  SDN-R tiny
  Thanks to plantUml! 
  2019-04-06 | onap.org
end footer

skinparam backgroundColor #fefefe

skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15

skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666

skinparam sequence {
  MessageAlign left
  ArrowColor #2277dd
  ArrowFontColor #666666
  ActorBorderColor #666666
  LifeLineBorderColor #666666
  LifeLineBackgroundColor #eeeeee
 
  BoxBorderColor #666666
    
  GroupBorderColor #666666
  GroupBackgroundColor #eeeeee
  
  ParticipantBorderColor #666666
  ParticipantBackgroundColor #ffffdd
  'ParticipantFontName Impact
  'ParticipantFontSize 17
  ParticipantFontColor #666666
    
  ActorBackgroundColor #ffffdd
  'ActorFontColor DeepSkyBlue
  'ActorFontSize 17
  'ActorFontName Aapex
}

@enduml



OpenDaylight cluster (medium setup)

For production deployment are three node OpenDaylight cluster should cover most of the use cases.

PlantUML Macro
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Script to convert yang modules into other formats
' Author: martin.skorupski@highstreet-technologies.com
' 
' Copyright 2019 higshtreet technologies GmbH
' 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.
' 

@startuml

' Diagram
title 
  SDN-R medium setup
  Connectivity
end title

box "Network" #eeeeee
  participant "<b>PNF00000</b>\nnetconf-server\nhttps-server" as pnf00000 
  participant "<b>PNF00001</b>\nnetconf-server\nhttps-server" as pnf00001 
  participant "<b>PNF99999</b>\nnetconf-server\nhttps-server" as pnf99999 
end box 

box "ONAP SDN-R" #ffffff
  participant "<b>ODL01</b>\nnetconf-client" as odl01
  participant "<b>ODL02</b>\nnetconf-client" as odl02
  participant "<b>ODL03</b>\nnetconf-client" as odl03
  participant "<b>Admin01</b>\nhttps-client" as admin01
  participant "db01" as db01
  participant "db02" as db02
end box

box "ONAP A&AI" 
  participant "<b>AAI-01</b>\nhttps-server" as aai01
  participant "AAI-02" as aai02
end box
 
box "ONAP DCAE" 
  participant "<b>VES-01 Collector</b>\nhttps-server" as ves01
  participant "DMaaP" as dmaap01
  participant "DCAE Servers" as dcae01
end box

autonumber "<b>[Con000]"
group NetConf\nautomated configuration management
  pnf00000 <-> odl01 : tcp/ssh/netconf/830 \n<b>currently active
  pnf00001 <--> odl01: tcp/ssh/netconf/830 \npossible
  pnf99999 <--> odl01: tcp/ssh/netconf/830 \npossible
  pnf00000 <--> odl02: tcp/ssh/netconf/830 \npossible
  pnf00001 <--> odl02: tcp/ssh/netconf/830 \npossible
  pnf99999 <-> odl02 : tcp/ssh/netconf/830 \n<b>currently active
  pnf00000 <--> odl03: tcp/ssh/netconf/830 \npossible
  pnf00001 <-> odl03 : tcp/ssh/netconf/830 \n<b>currently active
  pnf99999 <--> odl03: tcp/ssh/netconf/830 \npossible
end group

group sdnr-interfacing-with-dcae
  odl01 <-> ves01: https:8443
  odl02 <-> ves01: https:8443
  odl03 <-> ves01: https:8443
end group

group sdnr-interfacing-with-aai
  odl01 <-> aai01: https:8443
  odl02 <-> aai01: https:8443
  odl03 <-> aai01: https:8443
end group

group cluster synchronization
  odl01 <-> odl02: odl-synch tcp/2550
  odl01 <-> odl02: es-synch tcp/9300
  odl02 <-> odl03: odl-synch tcp/2550
  odl02 <-> odl03: es-synch tcp/9300
  odl03 <-> odl01: odl-synch tcp/2550
  odl03 <-> odl01: es-synch tcp/9300
  
  db01 <-> db02: synch tcp/3306
  aai01 <-> aai02: synch tcp/9300
end group 

group Notification to http clients by webSocekts
  note right of odl01 #3399ff
    <font color=#ffffff><b>Notification towards northbound of ODL are 
    <font color=#ffffff><b>provided via WebSockets. Notification from PNFs 
    <font color=#ffffff><b>are available via port 8443. 
    <font color=#ffffff><b>Notifications from ODL internal databse MDSAL are
    <font color=#ffffff><b>available via port 8185.
end note

  admin01 <- odl01: ws/8185 (md-sal)
  admin01 <- odl02: ws/8185 (md-sal)
  admin01 <- odl03: ws/8185 (md-sal)

end group

group https gui-cut-through\nmanual configuration management
  admin01 <-> odl01: https:8443
  pnf00000 <-> odl01: https:443
  pnf00001 <-> odl01: https:443
  pnf99999 <-> odl01: https:443

  admin01 <-> odl02: https:8443
  pnf00000 <-> odl02: https:443
  pnf00001 <-> odl02: https:443
  pnf99999 <-> odl02: https:443

  admin01 <-> odl03: https:8443
  pnf00000 <-> odl03: https:443
  pnf00001 <-> odl03: https:443
  pnf99999 <-> odl03: https:443
end group

' End Diagram
' Format
header
  <b><font color=#8888ff>License</font></b>
  <b><font color=#8888ff>Apache 2.0</font></b>
endheader
'caption "\n UML Formatting"

right footer 
   SDN-R Medium 
  Thanks to plantUml! 
  2019-04-06 | onap.org
end footer

skinparam backgroundColor #fefefe

skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15

skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666

skinparam sequence {
  MessageAlign left
  ArrowColor #2277dd
  ArrowFontColor #666666
  ActorBorderColor #666666
  LifeLineBorderColor #666666
  LifeLineBackgroundColor #eeeeee
 
  BoxBorderColor #666666
    
  GroupBorderColor #666666
  GroupBackgroundColor #eeeeee
  
  ParticipantBorderColor #666666
  ParticipantBackgroundColor #ffffdd
  'ParticipantFontName Impact
  'ParticipantFontSize 17
  ParticipantFontColor #666666
    
  ActorBackgroundColor #ffffdd
  'ActorFontColor DeepSkyBlue
  'ActorFontSize 17
  'ActorFontName Aapex
}

@enduml


Geo-Redundancy (full setup)

Based on use-cases and high availability requirements a geo-redundant setup with 2x 3 node local OpenDaylight cluster is shown in the figure below.

...

PlantUML Macro
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Script to convert yang modulesinto other formats
' Author: martin.skorupski@highstreet-technologies.com
' 
' Copyright 2019 higshtreet technologies GmbH
' Licensed under the Apache License, Version 2.0 (the"License");
' you may not use this file exceptin compliance with the License.
' You may obtain a copy of theLicense at
' 
'     http://www.apache.org/licenses/LICENSE-2.0
' 
' Unless required by applicablelaw or agreed to in writing,software
' distributed under the License isdistributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONSOF ANY KIND, either express orimplied.
' See the License for the specificlanguage governing permissions and
' limitations under the License.
' 

@startuml

' Diagram
title 
  SDN-R full setup
  Connectivity
end title

box "Network" #eeeeee
  participant "<b>PNF00000</b>\nnetconf-server\nhttps-server" as pnf00000 
  participant "<b>PNF00001</b>\nnetconf-server\nhttps-server" as pnf00001 
  participant "<b>PNF99999</b>\nnetconf-server\nhttps-server" as pnf99999 
end box 

box "ONAP SDN-R Geo01" #ffffff
  participant "<b>ODL11</b>\nnetconf-client" as odl11
  participant "<b>ODL12</b>\nnetconf-client" as odl12
  participant "<b>ODL13</b>\nnetconf-client" as odl13
  participant "<b>Admin11</b>\nhttps-client" as admin11
  participant "<b>Admin12</b>\nhttps-client" as admin12
  participant "db11" as db11
  participant "db12" as db12
  participant "log11" as log11
end box

box "ONAP A&AI Geo01" 
  participant "<b>AAI-11</b>\nhttps-server" as aai11
  participant "AAI-12" as aai12
end box
 
box "ONAP DCAE Geo01" 
  participant "<b>VES-11 Collector</b>\nhttps-server" as ves11
  participant "DMaaP" as dmaap11
  participant "DCAE Servers" as dcae11
end box

box "ONAP SDN-R Geo02" #ffffff
  participant "<b>ODL21</b>\nnetconf-client" as odl21
  participant "<b>ODL22</b>\nnetconf-client" as odl22
  participant "<b>ODL23</b>\nnetconf-client" as odl23
  participant "<b>Admin21</b>\nhttps-client" as admin21
  participant "<b>Admin22</b>\nhttps-client" as admin22
  participant "db21" as db21
  participant "db22" as db22
  participant "log21" as log21
end box

box "ONAP A&AI Geo02" 
  participant "<b>AAI-21</b>\nhttps-server" as aai21
  participant "AAI-22" as aai22
end box

box "ONAP DCAE Geo02" 
  participant "<b>VES-21 Collector</b>\nhttps-server" as ves21
  participant "DMaaP" as dmaap21
  participant "DCAE Servers" as dcae21
end box

autonumber "<b>[Con000]"
group NetConf\nautomated configuration management
  pnf00000 <-> odl11 : tcp/ssh/netconf/830 \n<b>currently active
  pnf00001 <--> odl11: tcp/ssh/netconf/830 \npossible
  pnf99999 <--> odl11: tcp/ssh/netconf/830 \npossible
  pnf00000 <--> odl12: tcp/ssh/netconf/830 \npossible
  pnf00001 <--> odl12: tcp/ssh/netconf/830 \npossible
  pnf99999 <-> odl12 : tcp/ssh/netconf/830 \n<b>currently active
  pnf00000 <--> odl13: tcp/ssh/netconf/830 \npossible
  pnf00001 <-> odl13 : tcp/ssh/netconf/830 \n<b>currently active
  pnf99999 <--> odl13: tcp/ssh/netconf/830 \npossible

  pnf00000 <--> odl21: tcp/ssh/netconf/830 \npossible
  pnf00001 <--> odl21: tcp/ssh/netconf/830 \npossible
  pnf99999 <--> odl21: tcp/ssh/netconf/830 \npossible
  pnf00000 <--> odl22: tcp/ssh/netconf/830 \npossible
  pnf00001 <--> odl22: tcp/ssh/netconf/830 \npossible
  pnf99999 <--> odl22: tcp/ssh/netconf/830 \npossible
  pnf00000 <--> odl23: tcp/ssh/netconf/830 \npossible
  pnf00001 <--> odl23: tcp/ssh/netconf/830 \npossible
  pnf99999 <--> odl23: tcp/ssh/netconf/830 \npossible
end group

group sdnr-interfacing-with-dcae
  odl11 <-> ves11: https:8443
  odl12 <-> ves11: https:8443
  odl13 <-> ves11: https:8443
  odl21 <-> ves21: https:8443
  odl22 <-> ves21: https:8443
  odl23 <-> ves21: https:8443
end group

group sdnr-interfacing-with-aai
  odl11 <-> aai11: https:8443
  odl12 <-> aai11: https:8443
  odl13 <-> aai11: https:8443
  odl21 <-> aai21: https:8443
  odl22 <-> aai21: https:8443
  odl23 <-> aai21: https:8443
end group

group cluster synchronization
  odl11 <-> odl12: odl-synch tcp/2550
  odl11 <-> odl12: es-synch tcp/9300
  odl11 <-> odl13: odl-synch tcp/2550
  odl11 <-> odl13: es-synch tcp/9300
  odl11 <-> odl21: odl-synch tcp/2550
  odl11 <-> odl21: es-synch tcp/9300
  odl11 <-> odl22: odl-synch tcp/2550
  odl11 <-> odl22: es-synch tcp/9300
  odl11 <-> odl23: odl-synch tcp/2550
  odl11 <-> odl23: es-synch tcp/9300

  odl12 <-> odl13: odl-synch tcp/2550
  odl12 <-> odl13: es-synch tcp/9300
  odl12 <-> odl21: odl-synch tcp/2550
  odl12 <-> odl21: es-synch tcp/9300
  odl12 <-> odl22: odl-synch tcp/2550
  odl12 <-> odl22: es-synch tcp/9300
  odl12 <-> odl23: odl-synch tcp/2550
  odl12 <-> odl23: es-synch tcp/9300

  odl13 <-> odl21: odl-synch tcp/2550
  odl13 <-> odl21: es-synch tcp/9300
  odl13 <-> odl22: odl-synch tcp/2550
  odl13 <-> odl22: es-synch tcp/9300
  odl13 <-> odl23: odl-synch tcp/2550
  odl13 <-> odl23: es-synch tcp/9300

  odl21 <-> odl22: odl-synch tcp/2550
  odl21 <-> odl22: es-synch tcp/9300
  odl21 <-> odl23: odl-synch tcp/2550
  odl21 <-> odl23: es-synch tcp/9300

  odl22 <-> odl23: odl-synch tcp/2550
  odl22 <-> odl23: es-synch tcp/9300
  
  db11 <-> db12: synch-port tcp/3306
  db11 <-> db21: synch-port tcp/3306
  db11 <-> db22: synch-port tcp/3306
  db12 <-> db21: synch-port tcp/3306
  db12 <-> db22: synch-port tcp/3306
  db21 <-> db22: synch-port tcp/3306

  aai11 <-> aai12: synch tcp/9300
  aai11 <-> aai21: synch tcp/9300
  aai11 <-> aai22: synch tcp/9300
  aai12 <-> aai21: synch tcp/9300
  aai12 <-> aai22: synch tcp/9300
  aai21 <-> aai22: synch tcp/9300
end group 

group Notification to http clients by webSocekts
  note right of odl11 #3399ff
    <font color=#ffffff><b>Notification towards northbound of ODL are 
    <font color=#ffffff><b>provided via WebSockets. Notification from PNFs 
    <font color=#ffffff><b> are available via port 8443. 
    <font color=#ffffff><b>Notifications from ODL internal databse MD-SAL are
    <font color=#ffffff><b>available via port 8185.
end note

  admin11 <- odl11: ws/8185 (md-sal)
  admin12 <- odl11: ws/8443 (ux-frame)
  admin11 <- odl12: ws/8185 (md-sal)
  admin12 <- odl12: ws/8443 (ux-frame)
  admin11 <- odl13: ws/8185 (md-sal)
  admin12 <- odl13: ws/8443 (ux-frame)

  admin21 <- odl21: ws/8185 (md-sal)
  admin22 <- odl21: ws/8443 (ux-frame)
  admin21 <- odl22: ws/8185 (md-sal)
  admin22 <- odl22: ws/8443 (ux-frame)
  admin21 <- odl23: ws/8185 (md-sal)
  admin22 <- odl23: ws/8443 (ux-frame)
end group

group https gui-cut-through\nmanual configuration management
  admin11 <-> odl11: https:8443
  admin12 <-> odl11: https:8443
  pnf00000 <-> odl11: https:443
  pnf00001 <-> odl11: https:443
  pnf99999 <-> odl11: https:443

  admin11 <-> odl12: https:8443
  admin12 <-> odl12: https:8443
  pnf00000 <-> odl12: https:443
  pnf00001 <-> odl12: https:443
  pnf99999 <-> odl12: https:443

  admin11 <-> odl13: https:8443
  admin12 <-> odl13: https:8443
  pnf00000 <-> odl13: https:443
  pnf00001 <-> odl13: https:443
  pnf99999 <-> odl13: https:443
end group

' End Diagram
' Format
header
  <b><font color=#8888ff>License</font></b>
  <b><font color=#8888ff>Apache 2.0</font></b>
endheader
'caption "\n UML Formatting"

right footer 
  SDN-R full
  Thanks to plantUml! 
  2019-04-06 | onap.org
end footer

skinparam backgroundColor #fefefe

skinparam backgroundColor #fefefe
'skinparam handwritten true
skinparam roundcorner 15

skinparam databaseBorderColor #666666
skinparam databaseBackgroundColor #fefefe
skinparam databaseFontColor #666666

skinparam sequence {
  MessageAlign left
  ArrowColor #2277dd
  ArrowFontColor #666666
  ActorBorderColor #666666
  LifeLineBorderColor #666666
  LifeLineBackgroundColor #eeeeee
 
  BoxBorderColor #666666
    
  GroupBorderColor #666666
  GroupBackgroundColor #eeeeee
  
  ParticipantBorderColor #666666
  ParticipantBackgroundColor #ffffdd
  'ParticipantFontName Impact
  'ParticipantFontSize 17
  ParticipantFontColor #666666
    
  ActorBackgroundColor #ffffdd
  'ActorFontColor DeepSkyBlue
  'ActorFontSize 17
  'ActorFontName Aapex
}

@enduml


Abbreviations

  • PNF Physical network function
  • VNF Virtual network function
  • XNF Physical or virtual network function