Hi Matt,

Thanks for the fast reply. Yes, I can confirm that the patch solves this issue.

Thanks again,

BR/Mechthild

From: Matthew Smith <mgsm...@netgate.com>
Sent: Friday, 18 February 2022 22:43
To: Mechthild Buescher <mechthild.buesc...@ericsson.com>
Cc: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] VRRP issue when using VRs in different VLANs

Hi Mechthild,

It looks like you are running version 21.06 of VPP. This patch was merged last 
month and may resolve the issue - 
https://gerrit.fd.io/r/c/vpp/+/34815<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-4e7411000178acf4&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=https%3A%2F%2Fgerrit.fd.io%2Fr%2Fc%2Fvpp%2F%2B%2F34815>.
 Can you try applying that patch to your build?

Let me know if that helps.

Thanks,
-Matt


On Fri, Feb 18, 2022 at 3:06 PM Mechthild Buescher via 
lists.fd.io<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56f4fcff43ab917f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2Flists.fd.io%2F>
 <mechthild.buescher=ericsson....@lists.fd.io<mailto:ericsson....@lists.fd.io>> 
wrote:
Hi all,

We are using VPP on two nodes and run VRRP on them. This works fine as long as 
we use one VLAN. But if we configure VRs in different VLANs we see strange 
behavior: Every 4 seconds, the backup  VRRP VR shortly changes to master and 
sends an advertisement message to the master and then it changes back to master.

The symptom:
# while true; do date; vppctl show vrrp vr | grep state; echo; sleep 1; done
Fri Feb 18 20:33:15 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:16 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:17 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:18 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Master flags: preempt no accept yes unicast no

Fri Feb 18 20:33:19 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:20 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:21 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

Fri Feb 18 20:33:22 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Master flags: preempt no accept yes unicast no

Fri Feb 18 20:33:23 UTC 2022
   state Backup flags: preempt no accept yes unicast no
   state Backup flags: preempt no accept yes unicast no

# tcpdump -nve -r /tmp/my_vppExt0_2vrid_2vlan.pcap | grep -B1 "vrid 232”
00:02:25.805841 00:00:5e:00:01:e8 > 01:00:5e:00:00:12, ethertype 802.1Q 
(0x8100), length 50: vlan 102, p 0, ethertype IPv4, (tos 0x0, ttl 255, id 0, 
offset 0, flags [none], proto VRRP (112), length 32)
    172.17.2.2 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 vrrp 172.17.2.2 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 VRRPv3, Advertisement, vrid 232, prio 100, intvl 100cs, length 12, addrs: 
172.17.2.3
--
00:02:26.190168 00:00:5e:00:01:e8 > 01:00:5e:00:00:12, ethertype 802.1Q 
(0x8100), length 60: vlan 102, p 0, ethertype IPv4, (tos 0x0, ttl 255, id 0, 
offset 0, flags [none], proto VRRP (112), length 32)
    172.17.2.3 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 vrrp 172.17.2.3 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 VRRPv3, Advertisement, vrid 232, prio 200, intvl 100cs, length 12, addrs: 
172.17.2.3
--
00:02:27.194227 00:00:5e:00:01:e8 > 01:00:5e:00:00:12, ethertype 802.1Q 
(0x8100), length 60: vlan 102, p 0, ethertype IPv4, (tos 0x0, ttl 255, id 0, 
offset 0, flags [none], proto VRRP (112), length 32)
    172.17.2.3 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 vrrp 172.17.2.3 > 
224.0.0.18<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-56c1a0226d9ef03f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F224.0.0.18%2F>:
 VRRPv3, Advertisement, vrid 232, prio 200, intvl 100cs, length 12, addrs: 
172.17.2.3

The configuration:
BACKUP system:
ip table add 26
ip table add 27
set interface state Ext-0 up
create sub-interfaces Ext-0 101
create sub-interfaces Ext-0 102
set interface state Ext-0.101 up
set interface state Ext-0.102 up

set interface ip table Ext-0.101 26
set interface ip table Ext-0.102 27
set interface ip address Ext-0.101 
172.17.1.2/25<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-128db6a02b02e48e&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F172.17.1.2%2F25>
set interface ip address Ext-0.102 
172.17.2.2/25<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-b470e363fe01b090&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F172.17.2.2%2F25>
vrrp vr add Ext-0.101 vr_id 231 priority 100 no_preempt accept_mode 172.17.1.3
vrrp vr add Ext-0.102 vr_id 232 priority 100 no_preempt accept_mode 172.17.2.3

MASTER system:
ip table add 26
ip table add 27
set interface state Ext-0 up
create sub-interfaces Ext-0 101
create sub-interfaces Ext-0 102
set interface state Ext-0.101 up
set interface state Ext-0.102 up

set interface ip table Ext-0.101 26
set interface ip table Ext-0.102 27
set interface ip address Ext-0.101 
172.17.1.1/25<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-9bc28876a446a59f&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F172.17.1.1%2F25>
set interface ip address Ext-0.102 
172.17.2.1/25<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-19bb88d40d9ec1f4&q=1&e=18a9b9de-69e2-4627-ba7e-b4b0481d9c1f&u=http%3A%2F%2F172.17.2.1%2F25>
vrrp vr add Ext-0.101 vr_id 231 priority 200 no_preempt accept_mode 172.17.1.3
vrrp vr add Ext-0.102 vr_id 232 priority 200 no_preempt accept_mode 172.17.2.3

Running BACKUP config:
# vppctl show vrrp vr
[0] sw_if_index 2 VR ID 231 IPv4
   state Backup flags: preempt no accept yes unicast no
   priority: configured 100 adjusted 100
   timers: adv interval 100 master adv 100 skew 60 master down 360
   virtual MAC 00:00:5e:00:01:e7
   addresses 172.17.1.3
   peer addresses
   tracked interfaces
[1] sw_if_index 3 VR ID 232 IPv4
   state Backup flags: preempt no accept yes unicast no
   priority: configured 100 adjusted 100
   timers: adv interval 100 master adv 100 skew 60 master down 360
   virtual MAC 00:00:5e:00:01:e8
   addresses 172.17.2.3
   peer addresses
   tracked interfaces

Running MASTER config:
# vppctl show vrrp vr
[0] sw_if_index 2 VR ID 231 IPv4
   state Master flags: preempt no accept yes unicast no
   priority: configured 200 adjusted 200
   timers: adv interval 100 master adv 100 skew 21 master down 321
   virtual MAC 00:00:5e:00:01:e7
   addresses 172.17.1.3
   peer addresses
   tracked interfaces
[1] sw_if_index 3 VR ID 232 IPv4
   state Master flags: preempt no accept yes unicast no
   priority: configured 200 adjusted 200
   timers: adv interval 100 master adv 100 skew 21 master down 321
   virtual MAC 00:00:5e:00:01:e8
   addresses 172.17.2.3
   peer addresses
   tracked interfaces

VPP version is the same on both systems:
# vppctl show version verbose
Version:                  v21.06.0-1~g7d4f93832
Compiled by:              suse
Compile host:             SUSE
Compile date:             2021-07-05T14:19:31
Compile location:         /root/vpp-21.06-release/vpp
Compiler:                 GCC 7.5.0
Current PID:              11346

The NIC is the same on both systems:
# vppctl show hardware-interface
              Name                Idx   Link  Hardware
Ext-0                              1     up   Ext-0
  Link speed: 10 Gbps
  RX Queues:
    queue thread         mode
    0     vpp_wk_0 (1)   polling
    1     vpp_wk_1 (2)   polling
    2     vpp_wk_2 (3)   polling
  Ethernet address 78:ac:44:1f:47:60
  Intel X710/XL710 Family
    carrier up full duplex mtu 9206
    flags: admin-up pmd maybe-multiseg subif tx-offload intel-phdr-cksum 
rx-ip4-cksum int-supported int-unmaskable
    Devargs:
    rx: queues 3 (max 192), desc 1024 (min 64 max 4096 align 32)
    tx: queues 4 (max 192), desc 1024 (min 64 max 4096 align 32)
    pci: device 8086:1572 subsystem 1028:1f9c address 0000:17:00.00 numa 0
    max rx packet len: 9728
    promiscuous: unicast off all-multicast on
    vlan offload: strip off filter off qinq off
    rx offload avail:  vlan-strip ipv4-cksum udp-cksum tcp-cksum qinq-strip
                       outer-ipv4-cksum vlan-filter vlan-extend jumbo-frame
                       scatter keep-crc rss-hash
    rx offload active: ipv4-cksum jumbo-frame scatter
    tx offload avail:  vlan-insert ipv4-cksum udp-cksum tcp-cksum sctp-cksum
                       tcp-tso outer-ipv4-cksum qinq-insert vxlan-tnl-tso
                       gre-tnl-tso ipip-tnl-tso geneve-tnl-tso multi-segs
                       mbuf-fast-free
    tx offload active: udp-cksum tcp-cksum multi-segs
    rss avail:         ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other 
ipv6-frag
                       ipv6-tcp ipv6-udp ipv6-sctp ipv6-other l2-payload
    rss active:        ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv6-frag ipv6-tcp
                       ipv6-udp ipv6-other
    tx burst mode: Scalar
    rx burst mode: Vector AVX2 Scattered

There is a switch between these interfaces but to me it looks like a bug in VPP 
as it is clearly related to the second VLAN configured in VPP. If I swap the 
order of configuration (vrrp vr add …), then it’s the other VR which is 
toggling every 4 seconds.

Can you help, please?

Thanks, BR/Mechthild


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20886): https://lists.fd.io/g/vpp-dev/message/20886
Mute This Topic: https://lists.fd.io/mt/89242509/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to