## Environment
main: 192.168.70.103
hv1: 192.168.70.102
hv2: 192.168.70.101
The main and hv1 nodes are normal ovs node. hv2 is ovs-dpdk node.

## Problem
I enable gateway port ha and hv2 is the active node. I use ovs-tcpdump to 
capture bfd packet. I found that main and hv1 nodes's bfd packet is correct. 
But when capture the hv2(ovs-dpdk node)node, I only capture the send packet and 
no recevied packet.

ovs-tcpdump to capture main node's bfd packet
```
tcpdump: listening on miens7, link-type EN10MB (Ethernet), capture size 262144 
bytes
11:25:52.669982 be:6c:7a:26:5c:6b > 33:33:00:00:00:16, ethertype IPv6 (0x86dd), 
length 90: (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: 
HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report 
v2, 1 group record(s) [gaddr ff02::1:ff26:5c6b to_ex { }]
11:25:52.677994 be:6c:7a:26:5c:6b > 33:33:ff:26:5c:6b, ethertype IPv6 (0x86dd), 
length 86: (hlim 255, next-header ICMPv6 (58) payload length: 32) :: > 
ff02::1:ff26:5c6b: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who 
has fe80::bc6c:7aff:fe26:5c6b
        unknown option (14), length 8 (1):
          0x0000:  752a 08ba 20cc
11:25:52.768438 3a:26:e2:80:97:4f > f6:e7:09:68:be:43, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 64334, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.102.7855 > 192.168.70.103.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      a6:55:72:1b:86:75 > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.49164 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: No Diagnostic (0x00)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0xcb488dc5, Your Discriminator: 0x27940c90
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
11:25:52.942842 f6:e7:09:68:be:43 > aa:4e:45:3a:fd:45, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 65468, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.103.14662 > 192.168.70.101.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      82:7c:6a:1a:9f:d9 > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.52918 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: Control Detection Time 
Expired (0x01)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0x66cdadf3, Your Discriminator: 0xe67da05e
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
11:25:53.095262 f6:e7:09:68:be:43 > 3a:26:e2:80:97:4f, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 11384, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.103.44158 > 192.168.70.102.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      02:5d:c6:c9:30:ba > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.52917 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: No Diagnostic (0x00)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0x27940c90, Your Discriminator: 0xcb488dc5
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
```

ovs-tcpdump to capture hv2 node's bfd packet
```
tcpdump: listening on miens7, link-type EN10MB (Ethernet), capture size 262144 
bytes
11:21:42.901477 aa:4e:45:3a:fd:45 > f6:e7:09:68:be:43, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.101.58278 > 192.168.70.103.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      22:7d:a9:c4:24:5c > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.49154 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: Control Detection Time 
Expired (0x01)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0xe67da05e, Your Discriminator: 0x66cdadf3
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
11:21:43.173041 aa:4e:45:3a:fd:45 > 3a:26:e2:80:97:4f, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.101.45326 > 192.168.70.102.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      92:8e:df:0a:b5:f1 > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.49155 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: Control Detection Time 
Expired (0x01)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0x1cbf65c5, Your Discriminator: 0x84f8571d
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
11:21:43.389329 42:24:06:19:eb:b8 > 33:33:00:00:00:16, ethertype IPv6 (0x86dd), 
length 90: (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: 
HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report 
v2, 1 group record(s) [gaddr ff02::1:ff19:ebb8 to_ex { }]
11:21:43.837401 42:24:06:19:eb:b8 > 33:33:ff:19:eb:b8, ethertype IPv6 (0x86dd), 
length 86: (hlim 255, next-header ICMPv6 (58) payload length: 32) :: > 
ff02::1:ff19:ebb8: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who 
has fe80::4024:6ff:fe19:ebb8
        unknown option (14), length 8 (1):
          0x0000:  b171 ccc7 207b
11:21:43.891403 aa:4e:45:3a:fd:45 > f6:e7:09:68:be:43, ethertype IPv4 (0x0800), 
length 116: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), 
length 102)
    192.168.70.101.58278 > 192.168.70.103.6081: [udp sum ok] Geneve, Flags 
[none], vni 0x0, proto TEB (0x6558)
      22:7d:a9:c4:24:5c > 00:23:20:00:00:01, ethertype IPv4 (0x0800), length 
66: (tos 0xc0, ttl 255, id 0, offset 0, flags [none], proto UDP (17), length 52)
    169.254.1.1.49154 > 169.254.1.0.3784: [no cksum] BFDv1, length: 24
      Control, State Up, Flags: [none], Diagnostic: Control Detection Time 
Expired (0x01)
      Detection Timer Multiplier: 3 (300 ms Detection time), BFD Length: 24
      My Discriminator: 0xe67da05e, Your Discriminator: 0x66cdadf3
        Desired min Tx Interval:     100 ms
        Required min Rx Interval:   1000 ms
        Required min Echo Interval:    0 ms
```

At the same time, I open the hv2 bfd module's debug to acquire more log 
information. And I found hv2 receive the bfd packet from main and hv1 nodes.
```
2022-09-08T10:53:52.477Z|00105|bfd(pmd-c07/id:13)|DBG|ovn-hv1-1: Received BFD 
control message.
  vers:1 diag:"Control Detection Time Expired" state:up mult:3 length:24
  flags: none
  my_disc:0x84f8571d your_disc:0x1cbf65c5
  min_tx:100000us (100ms)
  min_rx:1000000us (1000ms)
  min_rx_echo:0us (0ms)  Forwarding: true
  Detect Multiplier: 3
  Concatenated Path Down: false
  TX Interval: Approx 1000ms
  RX Interval: Approx 1000ms
  Detect Time: now +2170ms
  Next TX Time: now +261ms
  Last TX Time: now -679ms

  Local Flags: none
  Local Session State: up
  Local Diagnostic: Control Detection Time Expired
  Local Discriminator: 0x1cbf65c5
  Local Minimum TX Interval: 100ms
  Local Minimum RX Interval: 1000ms

  Remote Flags: none
  Remote Session State: up
  Remote Diagnostic: Control Detection Time Expired
  Remote Discriminator: 0x84f8571d
  Remote Minimum TX Interval: 100ms
  Remote Minimum RX Interval: 1000ms
  Remote Detect Multiplier: 3


2022-09-08T10:53:55.185Z|00107|bfd(pmd-c07/id:13)|DBG|ovn-main-1: Received BFD 
control message.
  vers:1 diag:"Control Detection Time Expired" state:up mult:3 length:24
  flags: none
  my_disc:0x66cdadf3 your_disc:0xe67da05e
  min_tx:100000us (100ms)
  min_rx:1000000us (1000ms)
  min_rx_echo:0us (0ms)  Forwarding: true
  Detect Multiplier: 3
  Concatenated Path Down: false
  TX Interval: Approx 1000ms
  RX Interval: Approx 1000ms
  Detect Time: now +2179ms
  Next TX Time: now +386ms
  Last TX Time: now -594ms

  Local Flags: none
  Local Session State: up
  Local Diagnostic: Control Detection Time Expired
  Local Discriminator: 0xe67da05e
  Local Minimum TX Interval: 100ms
  Local Minimum RX Interval: 1000ms

  Remote Flags: none
  Remote Session State: up
  Remote Diagnostic: Control Detection Time Expired
  Remote Discriminator: 0x66cdadf3
  Remote Minimum TX Interval: 100ms
  Remote Minimum RX Interval: 1000ms
  Remote Detect Multiplier: 3
```

In addition, all nodes bfd status is correct. So I wonder wheter ovs-tcpdump 
has bug to lead only capture send packet in ovs-dpdk node or some configures i 
set is not correct.

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to