As a user, I'd like to have ONOS running together the VPLS (for L2 services) and SDN-IP (for L3 services) apps.
VPLS and Layer2 connectivity
The VPLS app allows users to create multi-point L2 connectivity (broadcast networks), based on VLANId. Multiple hosts connect to the SDN data plane and they send in tagged traffic, from different ports and different VLANs. Hosts sending in traffic using the same VLAN tag, and configured in the configuration file, will be able to talk together, just as they would be connected together in the same broadcast domain. The network admin can use the interfaces section of the network-cfg file to express what hosts are present and what vlan they are using, thus allowing the communication.
The VPLS app uses single-point to multi-point intents to propagate broadcast traffic (matching on the Ethernet broadcast address and VLAN and propagating the message to single destinations, configured on the same vlan). It also uses multi-point to single-point intents to forward unicast traffic to a destination from each other source configured with its same vlan.
SDNIP and Layer3 connectivity
The SDN-IP app allows users to connect external AS together - through the OF domain - using BGP.
More details about the app at https://wiki.onosproject.org/display/ONOS/SDN-IP.
We're currently working to give SDN-IP the ability to have external routers and BGP speakers talking together, even if sending in traffic using different VLAN Ids.
Currently, VPLS considers interfaces configured with a VLAN, but no IPs. SDN-IP considers interfaces with IPs configured, either that vlans are configured or not.
Requirements for intent framework (both sp2sp, sp2mp, mp2sp):
- be able to match on a single vlan (instead of vlan any as we do right now)
- apply the treatment ONLY at the egress
As a "should have", it would be nice that the intent framework normalizes the VLAN into the core (asking to the resource manager for an available vlan). In order to do this, an encapsulation needs to be applied, as it's already done for the sp2sp intents. For this, we should move the sp2mp and the mp2sp intents to use the path intent instead of the link collection.