Regression #14320
closed``ifconfig -a`` prints CARP information for interfaces that do not have CARP configured
100%
Description
On a system with five interfaces configured, I have CARP VIPs on two of them (vtnet0, vtnet1) and yet ifconfig -a prints out CARP information on vtnet0 through vtnet4. It appears to be repeating the last printed value from an interface with a VIP. Running ifconfig <if> individually, such as ifconfig vtnet4, does not print the erroneous information.
: ifconfig vtnet4
vtnet4: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether 6a:0d:f4:88:99:f9
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
: ifconfig -a
vtnet0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether 7e:1d:5f:52:13:f5
inet6 fe80::7c1d:5fff:fe52:13f5%vtnet0 prefixlen 64 scopeid 0x1
inet 198.51.100.201 netmask 0xffffff00 broadcast 198.51.100.255
inet 198.51.100.200 netmask 0xffffff00 broadcast 198.51.100.255 vhid 200
carp: MASTER vhid 200 advbase 1 advskew 1
peer 224.0.0.18 peer6 ff02::12
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vtnet1: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether f2:65:47:9c:58:a8
inet6 fe80::f065:47ff:fe9c:58a8%vtnet1 prefixlen 64 scopeid 0x2
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 vhid 1
carp: MASTER vhid 1 advbase 1 advskew 1
peer 224.0.0.18 peer6 ff02::12
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vtnet2: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether d6:96:4d:73:88:0e
carp: MASTER vhid 1 advbase 1 advskew 1
peer 224.0.0.18 peer6 ff02::12
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vtnet3: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: SYNC
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether 02:d4:51:9d:1d:b6
inet6 fe80::d4:51ff:fe9d:1db6%vtnet3 prefixlen 64 scopeid 0x4
inet 172.16.1.2 netmask 0xffffff00 broadcast 172.16.1.255
carp: MASTER vhid 1 advbase 1 advskew 1
peer 224.0.0.18 peer6 ff02::12
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vtnet4: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether 6a:0d:f4:88:99:f9
carp: MASTER vhid 1 advbase 1 advskew 1
peer 224.0.0.18 peer6 ff02::12
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
enc0: flags=0<> metric 0 mtu 1536
groups: enc
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
pflog0: flags=100<PROMISC> metric 0 mtu 33152
groups: pflog
pfsync0: flags=41<UP,RUNNING> metric 0 mtu 1500
syncdev: vtnet3 syncpeer: 172.16.1.3 maxupd: 128 defer: off
syncok: 1
groups: pfsync
Updated by Jim Pingle over 2 years ago
Just to note, this only happens on 23.05 snapshots so it is likely related to unicast CARP changes.
Updated by Kristof Provost over 2 years ago
- Status changed from New to Feedback
- % Done changed from 0 to 100
The fix has been pushed upstream and merged into our branched. It'll be in the next snapshots.
The issue was that we failed to clear the data structure passed to libifconfig, so if there was no data from the kernel we'd repeat the data from the previous interface. Clearing the input data structure before making the call to the kernel fixes things.
Updated by Jim Pingle over 2 years ago
- Status changed from Feedback to Resolved
This is fixed on current snapshots. CARP info is only printed for interfaces which actually contain CARP VIPs now.