Changes
Page history
Update Bird's View
authored
Dec 01, 2020
by
Manuel Max Kieweg
Show whitespace changes
Inline
Side-by-side
Bird's-View.md
View page @
8fce48af
...
@@ -2,48 +2,19 @@
...
@@ -2,48 +2,19 @@
@startuml gosdn
@startuml gosdn
namespace arista {
namespace arista {
class SBI << (S,Aquamarine) >> {
class SBI << (S,Aquamarine) >> {
- transport
interface
s.Transport
- transport
nucleu
s.Transport
}
}
}
}
namespace ciena {
namespace ciena {
class SBI << (S,Aquamarine) >> {
class SBI << (S,Aquamarine) >> {
- transport interfaces.Transport
- transport nucleus.Transport
}
}
namespace interfaces {
class DeviceConfig << (S,Aquamarine) >> {
+ Identifier uuid
+ Endpoint string
+ Username string
+ Password string
}
interface PrincipalNetworkDomain {
+ Destroy() error
+ AddSbi() error
+ RemoveSbi() error
+ AddDevice() error
+ RemoveDevice() error
}
interface SouthboundInterface {
+ AddClient() error
+ RemoveClient() error
+ CollectHeartbeats() error
+ ListClients() <font color=blue>map</font>[int]Client
}
interface Transport {
+ SetConfig( <font color=blue>interface</font>{}) error
+ GetConfig() <font color=blue>interface</font>{}
}
}
}
}
namespace nucleus {
namespace nucleus {
class Core << (S,Aquamarine) >> {
class Core << (S,Aquamarine) >> {
- clients <font color=blue>map</font>[string]
interface
s.Client
- clients <font color=blue>map</font>[string]
nucleu
s.Client
- database database.Database
- database database.Database
- config controllerConfig
- config controllerConfig
...
@@ -59,8 +30,8 @@ namespace nucleus {
...
@@ -59,8 +30,8 @@ namespace nucleus {
}
}
class Device {
class Device {
- device ygot.Device
- device ygot.Device
- Sbi
interface
s.SouthboundInterface
- Sbi
nucleu
s.SouthboundInterface
- Config
interface
s.DeviceConfig
- Config
nucleu
s.DeviceConfig
}
}
class controllerConfig << (S,Aquamarine) >> {
class controllerConfig << (S,Aquamarine) >> {
...
@@ -74,7 +45,7 @@ namespace nucleus {
...
@@ -74,7 +45,7 @@ namespace nucleus {
}
}
class pndImplementation << (S,Aquamarine) >> {
class pndImplementation << (S,Aquamarine) >> {
- name string
- name string
- sbiContainer []
interface
s.SouthboundInterface
- sbiContainer []
nucleu
s.SouthboundInterface
+ Destroy() error
+ Destroy() error
+ AddSbi() error
+ AddSbi() error
...
@@ -108,7 +79,7 @@ namespace nucleus {
...
@@ -108,7 +79,7 @@ namespace nucleus {
}
}
class tapi << (S,Aquamarine) >> {
class tapi << (S,Aquamarine) >> {
- transport
interface
s.Transport
- transport
nucleu
s.Transport
+ GetConnections(Device) ([]byte, error)
+ GetConnections(Device) ([]byte, error)
+ GetLinks(Device) ([]byte, error)
+ GetLinks(Device) ([]byte, error)
...
@@ -116,19 +87,51 @@ namespace nucleus {
...
@@ -116,19 +87,51 @@ namespace nucleus {
+ GetNodeEdgePoints(Device) ([]byte, error)
+ GetNodeEdgePoints(Device) ([]byte, error)
}
}
class openconfig << (S,Aquamarine) >> {
class openconfig << (S,Aquamarine) >> {
- transport interfaces.Transport
- transport nucleus.Transport
}
class DeviceConfig << (S,Aquamarine) >> {
+ Identifier uuid
+ Endpoint string
+ Username string
+ Password string
}
interface PrincipalNetworkDomain {
+ Destroy() error
+ AddSbi() error
+ RemoveSbi() error
+ AddDevice() error
+ RemoveDevice() error
}
interface SouthboundInterface {
+ AddClient() error
+ RemoveClient() error
+ CollectHeartbeats() error
+ ListClients() <font color=blue>map</font>[int]Client
}
interface Transport {
+ SetConfig( <font color=blue>interface</font>{}) error
+ GetConfig() <font color=blue>interface</font>{}
}
}
}
}
"interfaces.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation"
"nucleus.PrincipalNetworkDomain" <|-- "nucleus.pndImplementation"
"interfaces.PrincipalNetworkDomain" <|-- "interfaces.Transport"
"nucleus.PrincipalNetworkDomain" "1" *-- "many" "nucleus.Device"
"interfaces.Transport" <|-- "nucleus.gnmi"
"nucleus.Transport" <|-- "nucleus.gnmi"
"interfaces.Transport" <|-- "nucleus.restconf"
"nucleus.Transport" <|-- "nucleus.restconf"
"interfaces.SouthboundInterface" <|-- "nucleus.tapi"
"nucleus.SouthboundInterface" <|-- "nucleus.Transport"
"interfaces.SouthboundInterface" <|-- "nucleus.openconfig"
"nucleus.SouthboundInterface" <|-- "nucleus.tapi"
"interfaces.SouthboundInterface" <|-- "arista.SBI"
"nucleus.SouthboundInterface" <|-- "nucleus.openconfig"
"interfaces.SouthboundInterface" <|-- "ciena.SBI"
"nucleus.SouthboundInterface" <|-- "arista.SBI"
"nucleus.SouthboundInterface" <|-- "ciena.SBI"
"nucleus.Core" <|-- "nucleus.controllerConfig"
"nucleus.Core" <|-- "nucleus.controllerConfig"
"nucleus.Core" <|-- "nucleus.Database"
"nucleus.Core" <|-- "nucleus.Database"
"nucleus.Core" "1" *-- "many" "nucleus.PrincipalNetworkDomain"
"nucleus.Core" <|-- "nucleus.Database"
"nucleus.Core" <|-- "nucleus.Database"
"nucleus.Core" <|-- "nucleus.Database"
@enduml
@enduml
```
```
\ No newline at end of file