On Fri, Mar 06, 2015 at 10:22:26AM -0800, Jean Tourrilhes wrote: > Ken Ajiro wrote : > > > > 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,... > > The way to avoid cross product explosion has always been to > use multiple tables. > Actually, Egress Tables introduced in 1.5 were explicitely > designed to address this use case in a generic fashion, because Egress > Tables have exactly the semantic you want. Instead of adding a table > in the output port restricted/dedicated to only VLAN and nothing else, > it introduce a generic OpenFlow table after the output action, so that > not only you can do VLAN filtering, but you can also implement STP > filtering, Reverse Path Filtering or any per-output port policies. In > other words, it is future proof. > In other words, please look at implementing Egress Tables in > OVS instead of Hybrid Port VLAN. IMHO, I think Ben would be more > likely to merge it. I think the current trend of trying to push more > and more specialised/dedicated features in OVS is not sustainable.
That's a good point. Another possibility is to use the "conjunctive match" feature in (upcoming) OVS 2.4. With this feature, you can effectively construct flows that say, (in_port in {set_A}) and (vlan_id in {set_B}),actions=... by adding n_A + n_B + 1 flows to the flow table, where n_A is the number of elements in {set_A} and n_B is the number in {set_B}. But I doubt that that feature maps well to hardware. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev