Hi all,

I found a bug in OVS-DPDK(ovs-2.17.1, dpdk-21.11).
Which is Miss setting port number in openflow while delete port and add
port.

1. The process of problem is:
```
add bridge;
add port;
add openflow, use port as in_port and output;
delete port;
openflow is error in port filed;
add port;
openflow is error in port filed;
```

2. How to produce:
```
### add bridge and port

[root@bogon ~]# ovs-vsctl show
9f76671a-87a2-46f0-92a3-6c83f7b0ab86
    Bridge br-int
        datapath_type: netdev
        Port pf0hpf
            Interface pf0hpf
                type: dpdk
                options: {dpdk-devargs="0000:01:00.0,representor=[65535]"}
        Port bond0
            Interface bond0
                type: dpdk
                options: {dpdk-devargs=net_bonding-bond0}
        Port br-int
            Interface br-int
                type: internal
    ovs_version: "2.17.2"

### add openflow

[root@bogon ~]# ovs-ofctl dump-flows br-int
 cookie=0x0, duration=6.338s, table=0, n_packets=0, n_bytes=0,
in_port=pf0hpf actions=output:bond0
 cookie=0x0, duration=5.765s, table=0, n_packets=6, n_bytes=744,
in_port=bond0 actions=output:pf0hpf

### delete port bond

ovs-vsctl del-port br-int bond0

[root@bogon ~]# ovs-ofctl dump-flows br-int
 cookie=0x0, duration=28.889s, table=0, n_packets=0, n_bytes=0,
in_port=pf0hpf actions=output:2
 cookie=0x0, duration=28.316s, table=0, n_packets=25, n_bytes=3355,
in_port=2 actions=output:pf0hpf
[root@bogon ~]# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:00002aa3ffcabe42
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src
mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(pf0hpf): addr:02:0a:35:4c:1b:2c
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br-int): addr:2a:a3:ff:ca:be:42
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

BUG:
In openflow, the "output:bond0" change to "output:2".
Why not delete the openflow related of bond0?

### add bond0 back

ovs-vsctl add-port br-int bond0 -- set interface bond0 type=dpdk
options:dpdk-devargs=net_bonding-bond0

[root@bogon ~]# ovs-ofctl dump-flows br-int
 cookie=0x0, duration=275.262s, table=0, n_packets=0, n_bytes=0,
in_port=pf0hpf actions=output:2
 cookie=0x0, duration=274.689s, table=0, n_packets=25, n_bytes=3355,
in_port=2 actions=output:pf0hpf
    (BUG: output:2 should change back to output:bond0, why NOT?)
[root@bogon ~]# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:00002aa3ffcabe42
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src
mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(pf0hpf): addr:02:0a:35:4c:1b:2c
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 3(bond0): addr:a6:29:0d:b8:5b:3a
     config:     0
     state:      0
     current:    AUTO_NEG
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br-int): addr:2a:a3:ff:ca:be:42
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
    (BUG: Why bond0 NOT use 2, but use 3)

### for "delete  pf0hpf  ", same result.

[root@bogon ~]# ovs-vsctl del-port br-int pf0hpf
[root@bogon ~]# ovs-ofctl dump-flows br-int
 cookie=0x0, duration=404.519s, table=0, n_packets=0, n_bytes=0, in_port=1
actions=output:2
 cookie=0x0, duration=403.946s, table=0, n_packets=25, n_bytes=3355,
in_port=2 actions=output:1

ovs-vsctl add-port br-int pf0hpf -- set interface pf0hpf type=dpdk
options:dpdk-devargs=0000:01:00.0,representor=[65535]
[root@bogon ~]# ovs-ofctl dump-flows br-int
 cookie=0x0, duration=510.358s, table=0, n_packets=0, n_bytes=0, in_port=1
actions=output:2
 cookie=0x0, duration=509.785s, table=0, n_packets=25, n_bytes=3355,
in_port=2 actions=output:1
[root@bogon ~]# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:00002aa3ffcabe42
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src
mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 3(bond0): addr:a6:29:0d:b8:5b:3a
     config:     0
     state:      0
     current:    AUTO_NEG
     speed: 0 Mbps now, 0 Mbps max
 4(pf0hpf): addr:02:0a:35:4c:1b:2c
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br-int): addr:2a:a3:ff:ca:be:42
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
```

3. What's effect of this BUG
```
Because of this BUG, packets will be drop.
For example:
After add bridge and port and openflow.
send packet, could forward.
After delete port(bond0 or pf0vf0), packets will be drop, this is OK.
BUT, after add port back again, packets will still be drop!!!
Because the number of port change, NOT same as openflow.
```

4. So my question is:
- Is this a BUG?
- Is this BUG has been fixed? Fixed in which commit?

Thanks~

----
Simon Jones
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to