Hello, I am hoping that OVS supports a functionality it allows to use port VLAN with OpenFlow OFPAT_OUTPUT action. I wrote a patch for such feature, is it possible to merge it to OVS?
I understand that OVS is supporting port VLAN capability for only "normal switching". When we implement VLAN isolation using OpenFlow, in some use case, the number of flow entries will grow up to large amount. This trend is particularly notable when OVS is connected to not only VMs but also legacy networks for tenants. For example, when switch was configured and was used as the following: port 1: trunks 100, 110, 120 (connected to tenant networks) port 2: trunks 100, 110, 120 (connected to tenant networks) port 3: trunks 200, 210, 220 (connected to tenant networks) port 4: trunks 200, 210, 220 (connected to tenant networks) port 5: trunks 300, 310, 320 (connected to tenant networks) port 6: trunks 300, 310, 320 (connected to tenant networks) port 7: trunk (connected to provider networks) port 8: trunk (connected to provider networks) To isolate the L2 domain equivalent to VLAN, I think that following flow entries will be needed. in_port=1,vlan_id=100,actions=output:2,output:7,output:8 in_port=1,vlan_id=110,actions=output:2,output:7,output:8 in_port=1,vlan_id=120,actions=output:2,output:7,output:8 in_port=1,drop in_port=2,vlan_id=100,... ... in_port=7,vlan_id=100,actions=output:1,output:2,output:8 in_port=7,vlan_id=110,actions=output:1,output:2,output:8 in_port=7,vlan_id=120,actions=output:1,output:2,output:8 in_port=7,vlan_id=200,actions=output:3,output:4,output:8 in_port=7,vlan_id=210,actions=output:3,output:4,output:8 in_port=7,vlan_id=220,actions=output:3,output:4,output:8 in_port=7,vlan_id=300,actions=output:5,output:6,output:8 in_port=7,vlan_id=310,actions=output:5,output:6,output:8 in_port=7,vlan_id=320,actions=output:5,output:6,output:8 in_port=7,actions=output:8 in_port=8,vlan_id=100,... ... Amount of needed flow entries will be: (Number of ports) x (Number of VLANs) For example, if switch has 48 ports and 250 VLANs, number of flow entries will be 12,000 entries. In the case where OVS is applied to some hardware based switch that has small capacity of flow table, this amount is too large. For such case, if we can use port VLAN that is possible to use not only for "normal switching" but also for OpenFlow output action, we can reduce the number of entries. As for above example, needed entries will be: in_port=1,actions=output:2,output:7,output:8 in_port=2,actions=output:1,output:7,output:8 in_port=3,actions=output:4,output:7,output:8 in_port=4,actions=output:3,output:7,output:8 ... in_port=7,actions=output:1,output:2,output:3,output:4,output:5,output:6,output:8 in_port=8,actions=output:1,output:2,output:3,output:4,output:5,output:6,output:7 Controller will also set port VLAN via OVSDB. As for this method, amount of needed flow entries will be equal to number of ports. That is, number of needed entries is 8. (Of course, above model does not make sense because it behaves as just dumb hub. It is simplified model for my explanation. In actual case, I will add some matches and actions for the functionality of SDN) I'm glad if you feel such function, so to speak "hybrid port VLAN", will make sense and if I can merge the patch to OVS. Regards, Ken _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
