Jump to: navigation, search

Difference between revisions of "Neutron/OFAgent/FlowTable"

(Created page with "OpenFlow1.3 flow table for OFAgent * todo: VXLAN (same as GRE?) * legends xxx: network id yyy: segment id a,b,c: tunnel port i,j,k: vm port x,y,z: physical port N: tun...")
 
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
OpenFlow1.3 flow table for OFAgent
 
OpenFlow1.3 flow table for OFAgent
  
* todo: VXLAN (same as GRE?)
+
moved to: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ofagent/agent/flows.py
 
 
* legends
 
xxx: network id
 
yyy: segment id
 
a,b,c: tunnel port
 
i,j,k: vm port
 
x,y,z: physical port
 
N: tunnel type
 
uuu: unicast address
 
 
 
* tables (in order)
 
    CHECK_IN_PORT
 
    CHECK_NETWORK+N
 
    ARP_PROXY
 
    TUNNEL_OUT
 
    TUNNEL_OUT_FLOOD+N
 
    LOCAL_OUT
 
    LOCAL_OUT_FLOOD
 
 
 
* CHECK_IN_PORT
 
 
 
  for each vm ports:
 
      in_port=i, write_metadata(xxx),goto(ARP_PROXY)
 
 
 
  TYPE_GRE
 
  for each tunnel ports:
 
      in_port=a, goto(CHECK_NETWORK+N)
 
 
 
  TYPE_VLAN
 
  for each physical ports:
 
      in_port=x, goto(CHECK_NETWORK+N)
 
 
 
  TYPE_FLAT
 
      in_port=x, goto(CHECK_NETWORK+N)
 
 
 
  default drop
 
 
 
* CHECK_NETWORK+N. (per tunnel types)  tunnel/vlan -> network
 
 
 
  TYPE_GRE
 
  for each networks:
 
      tun_id=yyy, write_metadata(xxx),goto(LOCAL_OUT)
 
 
 
  TYPE_VLAN
 
  for each networks:
 
      vlan_vid=present|yyy, write_metadata(xxx),pop_vlan,goto(LOCAL_OUT)
 
 
 
  TYPE_FLAT
 
      vlan_vid=none, write_metadata(xxx),pop_vlan,goto(LOCAL_OUT)
 
 
 
  default drop
 
 
 
* ARP_PROXY
 
** todo: local arp responder
 
 
 
  goto(TUNNEL_OUT)
 
 
 
* TUNNEL_OUT
 
** todo: learning and/or l2 pop
 
 
 
  goto(TUNNEL_OUT_FLOOD+0)
 
 
 
* TUNNEL_OUT_FLOOD+N. (per tunnel types)
 
 
 
  network -> tunnel/vlan
 
  output to tunnel/physical ports
 
  "next table" might be LOCAL_OUT
 
 
 
  TYPE_GRE
 
  for each networks:
 
      metadata=xxx, set_tunnel(yyy),output:a,b,c,goto(next table)
 
 
 
  TYPE_VLAN
 
  for each networks:
 
      metadata=xxx, push_vlan:0x8100,set_field:present|yyy->vlan_vid,output:x,y,z,goto(next table)
 
 
 
  TYPE_FLAT
 
      metadata=xxx, output:x,y,z,goto(next table)
 
 
 
  default goto(next table)
 
 
 
* LOCAL_OUT
 
** todo: learning and/or l2 pop
 
  goto(LOCAL_OUT_FLOOD)
 
 
 
* LOCAL_OUT_FLOOD
 
** todo: learning and/or l2 pop
 
 
 
  for each networks:
 
      metadata=xxx, output:i,j,k
 
 
 
  default drop
 

Latest revision as of 04:27, 3 September 2014

OpenFlow1.3 flow table for OFAgent

moved to: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ofagent/agent/flows.py