Versions Compared

Key

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

...

  1. A VPLS needs to be defined

  2. At least two interfaces need to be configured in the ONOS interfaces configuration

  3. At least two interfaces need to be associated to the same VPLS

  4. At least two hosts need to be connected to the OpenFlow network. The hosts should Hosts participating to the same VPLS can send in packets tagged with the same VLAN Id defined in the interface configurationVLAN Ids, different VLAN Ids, no VLAN Ids at all

 

When conditions 1, 2 and 3 are satisfied, hosts attached to the VPLS will be able to send and receive broadcast traffic (i.e. ARP request messages). This is needed to make sure that all hosts get discovered properly, before establishing unicast communication.

When 4 gets satisfied -meaning that ONOS discovers as hosts with a MAC address and a VLAN Id, at least two hosts of the hosts configured same VPLS- unicast communication is established between the hosts discovered on that specific overlay network.

General workflow

The VPLS workflow can be grouped in two main functions:

...

  • At the application startup;

  • Every time the interface configuration or VPLS configuration get updated;

  • As soon as new hosts join the network and get discovered;

  • VPLS config changed;

...

  • Every time the VPLS configuration changes;

Network configuration, interface configuration and hosts listeners

VPLS has listeners for three event types:

  • Interface configuration updates: each time a node in the interface configuration is added, updated or deleted, for example pushing the network-cfg.json JSON configuration file or through CLI. The Interface configuration is filtered to consider only the interfaces with VLANs configured, but not IPwith no IPs (to avoid to conflict with Layer3 applications, such as SDN-IP).

  • VPLS configuration updates: each time a node in the VPLS configuration is added or updated or deleted, for example pushing the network-cfg.json JSON file or through CLI.

  • Host added  / Host updated: each time a host joins the network, meaning a new host gets physically connected to the OpenFlow data plane and starts sending ARP packets into the network. The Host Service will discover the host (with a MAC address, possibly a VLAN , and possibly one or more IP addresses). VPLS listens for Host added / updated / removed events and filters hosts that are attached to the OpenFlow switches, and use VLANs, according to what has been configured in the interfaces section.

...

The Intent Framework is used to provision both broadcast and unicast connectivity between the edge ports of the OpenFlow network, where hosts are attached to. Using the Intent Framework intent framework abstraction allows to mask the complexity of provisioning single flows on each switch and do error recovering in case failures happen.

...

The intent ingress selector is defined using the edge in-port, the destination MAC address FF:FF:FF:FF:FF:FF (broadcast Ethernet address) and the VLAN Id of the source host (in case the interface associated has a VLAN Id associated), according to what has been defined in the interface configuration. The egress selectors are defined as the ingress selector (broadcast Ethernet address), but with the VLAN Id of the destination hosts (in case destination hosts have VLANs configured). The intent framework automatically performs the VLAN Id translation (translation, popping, pushing) at the egress as needed, before the traffic is sent to the destination hosts. The traffic is carried through the best-path - according to the PCE installed - to all the edge ports associated to the same VPLS.

...

At each ingress, the intent ingress selector is defined using the edge in-port, the MAC address of the destination host, and the VLAN Id of the source host (in case the source interface has a VLAN Id configured), according to what has been defined in the interface configuration. The egress selector is defined as the ingress selectors (matching on the destination MAC address), but with the VLAN Id of the destination host (in case the interfaces associated to the destination hosts have a VLAN Id configured). The intent framework automatically performs the VLAN Id translation (translation, popping, pushing) at the ingress as needed, before the traffic is sent through the core. The traffic is carried through the best-path - according to the PCE installed - to all the edge ports associated to the same VPLS.

...