Have questions? Stuck? Please check our FAQ for some common questions and answers.


 

 Module nameDescription 
REST Server

Handles the REST API, which are called from Neturon ONOS plugin.

REST ClientExtracts networks, subnets, and ports information from Neutron by calling Neutron API
ForwardingRulePopulator

Sets up packet forwarding rules to OVS of each Cnode for forwarding packets among all VMs in the same subnet.

ARPHandler

Creates the ARP Response for ARP packets sent from VMs and send it out to the VMs.

 

Security Group

 

Working Flow

(1) OVS setup : creates br-int bridge and setup controller, and setup a TUNNEL_PORT (vxlan)

 

(2) CREATE_VM by Nova

(3) CREAT_VM REST API call from Nuetron ML2 plugin with VM1_IP, VM1_MAC

(4) Set VM1_IP:VM1_MAC mapping to DHCP Service

 

(5) PORT_CREATED event to ONOS

(6) Query the VM IP and VM MAC to Neutron for the port created

(7) Populates a flow rule for the VM1 ( dest_IP == VM1_IP -> output to PORT1 )

 

(8) DHCP Request

(9) DHCP Offer

 

(10) CREATE VM2 -> Follow the same step of (3) ~ (6)

(11) Populates flow rules for each VM using Nicira Extension

    VM1 : dest_IP == VM2_IP -> set_tunnel_destIP = HOST2_IP, set_VNI = VNI1, output to TUNNEL_PORT

    VM2 :

  •  dest_IP == VM2_IP -> output to VM2_PORT
  • dest_IP == VM1_IP -> set tunnel dest IP = HOST1_IP, set_VNI = VN1, output to TUNNEL_PORT

(12) ping VM2_IP

(13) ARP request for VM2_IP

(14) ARP response (VM2_MAC) by ARP Handler

 

(15) ICMP request to VM2 using the flow rule : dest_IP == VM2_IP -> set_tunnel_destIP = HOST2_IP, set_VNI = VNI1, output to TUNNEL_PORT

 

(16) ICMP request to VM2 using the flow rule : dest_IP == VM2_IP -> output to VM2_PORT

(17) ARP request and response

(18) ICMP response to VM1 using the flow rule: dest_IP == VM1_IP -> set tunnel dest IP = HOST1_IP, set_VNI = VN1, output to TUNNEL_PORT

(19) ICMP response to VM1 using the flow rule: dest_IP == VM1_IP -> output to PORT1

 

 

  • No labels