Requirements

  1. Supports Connection Tracking feature using OVS

  2. Separates routing flow rules from switching rules for simplicity

  3. Supports complete tenant isolation

Limitations

A tenant cannot create more than one subnet with same IP address range even in different virtual network. However, the same subnet can be defined across tenants.

High level table design

Flow rule designs

         

table=2,ip,nw_src=10.10.0.10,nw_dst=10.10.0.12 actions=goto_table:4
table=3,in_port=4,ip,ct_state=+trk+new,nw_dst=10.10.0.13/32,action=ct(commit),goto_table:4


 

(3) Routing table

table=5,ip,tun_id=0x402,nw_src=10.10.0.0/24,dl_src=00:00:00:00:04:02,nw_dst=10.10.0.0/24, actions=set_field:0x402->tun_id, action=goto_table:5

(4) Switching table

table=5,ip,nw_dst=10.10.0.13 actions=set_field:fa:16:3e:b8:92:fe->eth_dst

,output:5

table=5,ip,nw_dst=10.10.0.10 actions=set_field:10.0.0.166->tun_dst,output:1