[ovs-dev] how to handle flow deletion when multiple flow tables are supported

tech_kals Kals tech.kals at gmail.com
Tue Aug 4 06:44:22 UTC 2015


Hi experts,

  Please ignore my previous mail. Sent it without completion.

am trying to integrate Broadcom's OFDPA (OpenFlow Data Path Abstraction)
into my data-plane. As you all know, OFDPA supports multiple flow tables
for programming multiple flow entries.

when multiple flow tables are supported in the data plane hardware, we
might face some issues and one shown below.

1) Flow deletion:
   Assume, Ingress flow table and VLAN flow table supported in the hardware.
   So, when you get a flow entry as shown below, using their match criteria
the entry would be added into both the tables.

---------------------------------------------------------------------------------
Flow entry                     |             Match criteria           |
---------------------------------------------------------------------------------
 Entry 1                        |          inport : eth0,
                                    |          vlan  : 10
---------------------------------------------------------------------------------

 This is fine. When you want to delete the same match criteria would be
used to uniquely find a flow entry {eth0 is key for ingress flow table &
vlan10 is the key for vlan table) in each of the flow table.

Now, if you get 2 flow entry as shown below, how the hardware will behave.

---------------------------------------------------------------------------------
Flow entry                     |             Match criteria           |
---------------------------------------------------------------------------------
 Entry 1                         |          inport : eth0,
                                     |          vlan  : 10
---------------------------------------------------------------------------------
 Entry 2                         |          inport : eth0,
                                    |          vlan  : 20
---------------------------------------------------------------------------------

If you look at the flow tables in hardware, it looks as shown below.

--------------------------------------------------------------------------------------------------------------
Flow entry                     |            ingress table            |
      vlan table
-------------------------------------------------------------------------------------------------------------
 Entry 1                         |          inport : eth0               |
         vlan 10

    |            vlan 20
--------------------------------------------------------------------------------------------------------------

Here, the problem starts....

Ingress table entry is common for both vlan entries. So, if you want to
delete the 2nd flow entry in VLAN table then it should be deleted from
Ingress table as well.
If you delete the flow entry from Ingress flow table then both flow entries
in VLAN table would get deleted. So, how this can be handled?

How OVS dpif will handle this case?


Thanks,
tech.kals



More information about the dev mailing list