Versions Compared

Key

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

...

In OpenNaaS source code, IP capability is defined by org.opennaas.extensions.router.capability.vrrp.IVRRPCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.router.capability.vrrp.VRRPCapability in router.capability.vrrp extension project.

Junos 10.

...

0 driver

OpenNaaS has developed extensions for Juniper Network Operating System (also called Junos). It provides compatibility with Juniper routers using Junos version 10.100. Each router resource capability has a Junos implementation of Action and Command.

In OpenNaaS source code, Junos action is defined by org.opennaas.extensions.router.junos.actionssets.actions.JunosAction Java abstract class in router.actionsets.junos extension project. In the same project, in actionssets/actions folder there are specific folders for each router resource capability action implementations. Moreover, in the same project, each router resource capability action set have has specific implementations implementation in actionssets folder. Finally, in the same project, in  commandsets/commands folder has specific implementation of each router resource capability commands command based on org.opennaas.extensions.router.junos.commandsets.commands.JunosCommand abstract Java class.

...

OpenNaaS has developed extensions for W-onesys optical switches. Each , concretely a ROADM Proteus S8. Each ROADM switch resource capability has a W-onesys implementation of Action and Command.

n In OpenNaaS source code, W-onesys action is defined by org.opennaas.extensions.roadm.wonesys.actionsets.actions.WonesysAction Java abstract class in roadm.actionsets.wonesys extension project. In the same project, in actionssets/actions folder there are specific folders for each optical switch resource capability action implementations. Moreover, in the same project, each optical switch resource capability action set have specific implementations in actionssets folder. Finally, in the same project, in  commandsets/commands folder has specific implementation implementations of each optical switch resource capability commands command based on org.opennaas.extensions.roadm.wonesys.commandsets.WonesysCommand abstract Java class.

BoD resource

The Bandwidth on Demand resource (also called BoD) represents a bandwidth allocation system. OpenNaaS has extensions to offer Layer 2 BoD.

...

OpenNaaS has developed extensions for using to use GÉANT AutoBAHN bandwidth allocation system (also called Automated Bandwidth Allocation across Heterogeneous Networks). It allows allocating Layer 2 circuits with bandwidth allocated.

In OpenNaaS source code, W-onesys action is defined by actionssets/actions folder there are specific folders for each optical switch resource capability action implementations. Moreover, in the same project, each optical switch resource capability action set have specific implementations in actionssets folder. Finally, in the same project, in commandsets/commands folder has specific implementation of each optical switch resource capability commands Autobahn action is defined by org.opennaas.extensions.bod.autobahn.AutobahnAction Java abstract class in bod.autobahn extension project. In the same project, in bod folder there are specific classes for each BoD resource capability action implementations. Moreover, in the same folder, the BoD resource capability action set is defined by org.opennaas.extensions.bod.autobahn.bod.BoDActionSet Java class. Finally, in the same project, commands folder has specific implementations of each BoD resource capability command based on org.opennaas.extensions.roadmbod.wonesysautobahn.commandsetscommands.WonesysCommandAutobahnCommand abstract Java class.

...

MAC Bridge resource

TODO

Network resource

TODO

VCPE resource

...

The MAC Bridge resource represents a LAN bridge that groups its interfaces in the same layer 2 domain breaking collision domains.

Capabilities

VLAN Aware Bridge capability

The VLAN Aware Bridge capability allows creating/deleting VLAN configurations and adding/deleting static VLAN registration entities from filtering databases.

In OpenNaaS source code, VLAN Aware Bridge capability is defined by org.opennaas.extensions.capability.macbridge.vlanawarebridge.IVLANAwareBridgeCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.capability.macbridge.vlanawarebridge.VLANAwareBridgeCapability in macbridge.capability.vlanawarebridge extension project.

IOS Driver

OpenNaaS has developed extensions to use a Cisco MAC Bridges that use Cisco IOS (Internetworking Operating System)

In OpenNaaS source code, in macbridge.ios.resource extension project there are folders for each MAC Bridge resource capability action implementations in  actionssets/actions project folder. Moreover, in actionssets project folder, the MAC Bridge resource capability action sets are defined. Finally, in the same project,  commandsets/commands folder has specific implementations of each MAC Bridge resource capability commands based on org.opennaas.extensions.macbridge.ios.resource.commandsets.commands.IOSCommand abstract Java class.

Network resource

The Network resource represents a network topology based on its resources and its links between resources interfaces.

Capabilities

Network Basic capability

Network Basic capability (also called L2BoD) allows adding/removing resources in a network topology and attaching/detaching interfaces in a network topology.

In OpenNaaS source code, Network Basic capability is defined by org.opennaas.extensions.network.capability.basic.INetworkBasicCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.network.capability.basic.NetworkBasicCapability in network.capability.basic extension project.

Network OSFP capability

Network OSPF capability allows activating/deactivating OSPF protocol in a network.

In OpenNaaS source code, Network OSPF capability is defined by org.opennaas.extensions.network.capability.ospf.INetOSPFCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.network.capability.ospf.NetOSPFCapability in network.capability.queue extension project.

Network Queue capability

Network Queue capability allows executing the queue of each resource in the network.

In OpenNaaS source code, Network Queue capability is defined by org.opennaas.extensions.network.capability.queue.IQueueCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.network.capability.queue.QueueCapability in network.capability.queue extension project.

VCPE resource

The Virtual Customer Premises Equipment resource(also called vCPE) is a CPE deployed following Network as a Service (NaaS) paradigm. More Information about vCP can be found in this paper.

Capabilities

VCPE Builder capability

The vCPE Builder capability allows building/destroying vCPE networks.

In OpenNaaS source code, vcPE Builder capability is defined by org.opennaas.extensions.vcpe.capability.builder.IVCPENetworkBuilderCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.vcpe.capability.builder.IVCPENetworkBuilderCapability in vcpe extension project.

VCPE IP capability

The vCPE IP capability allows updating a set of IP addresses in a given vCPE network.

In OpenNaaS source code, vcPE IP capability is defined by org.opennaas.extensions.vcpe.capability.ip.IVCPEIPCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.vcpe.capability.ip.VCPEIPCapability in vcpe extension project.

VCPE VRRP capability

The vCPE VRRP capability allows updating virtual VRRP IP addresses in a given vCPE network. Moreover, it allows changing VRRP priority in a given vCPE network

In OpenNaaS source code, vcPE VRRP capability is defined by org.opennaas.extensions.vcpe.capability.vrrp.IVCPEVRRPCapability Java interface which defines the capability itself and implemented by org.opennaas.extensions.vcpe.capability.vrrp.VCPEVRRPCapability in vcpe extension project.

User interfaces

There two interfaces between users and OpenNaaS: the Command Line Interface (CLI) and the Web Services API.

CLI

A command line interface is developed to provide a quick way to interact with OpenNaaS. It is developed on top of Apache Karaf console. It allows extending standard commands adding new customized ones (more information can be found here).

Mostly all capability methods have commands available in the shell. To develop an OpenNaaS command it is necessary to implement org.opennaas.core.resources.shell.GenericKarafCommand Java abstract class.

Web Services API

A Web Services API allows to interact between user and OpenNaaS. It is developed using Apache CXF and dOSGI technologies and provides a REST API. Broadly, all the capability are registered services that publish their interfaces in this API. Moreover, Resource Manager and Protocol Manager register their interfaces too. Method registerService of org.opennaas.core.resources.capability.AbstractCapability Java abstract class how a capability interface is published as Web Service API using these technolgies.

Conclusion

Finally, OpenNaaS can be summarized in this module diagram:

...