Newer
Older
ppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/pnd"
tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/change"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
"google.golang.org/protobuf/proto"
)
// NetworkDomain provides an interface for network domain implementations
// like principal network domain or logical network domain.
type NetworkDomain interface {
Destroy() error
AddSbi(s southbound.SouthboundInterface) error
RemoveSbi(uuid.UUID) error
AddNetworkElement(name string, opts *tpb.TransportOption, sid uuid.UUID) (uuid.UUID, error)
GetNetworkElement(identifier string) (networkelement.NetworkElement, error)
RemoveNetworkElement(uuid.UUID) error
UpdateNetworkElement(uuid.UUID, string) error
NetworkElements() []networkelement.NetworkElement
FlattenedNetworkElements() []networkelement.LoadedNetworkElement
ChangeMNE(uuid uuid.UUID, operation ppb.ApiOperation, path string, value ...string) (uuid.UUID, error)
Request(uuid.UUID, string) (proto.Message, error)
RequestAll(string) error
GetName() string
GetDescription() string
MarshalNetworkElement(string) (string, error)
GetSBIs() ([]southbound.SouthboundInterface, error)
GetSBI(uuid.UUID) (southbound.SouthboundInterface, error)
ID() uuid.UUID
PendingChanges() []uuid.UUID
CommittedChanges() []uuid.UUID
Commit(uuid.UUID) error
Confirm(uuid.UUID) error
SubscribePath(uuid.UUID, *ppb.SubscriptionList) error