Hi Neale, Looking at the show ip arp we see that the arp entries still remain the same even after the link is down.
show ip arp Time IP4 Flags Ethernet Interface 1.9954 10.0.0.14 D de:ad:de:ad:00:04 GigabitEthernet0/3/0 1.9633 10.0.0.15 D de:ad:de:ad:00:05 GigabitEthernet0/4/0 2.8591 10.0.1.132 S 00:65:0d:98:00:00 loop10 2.8611 10.0.2.132 S 00:65:0e:bf:00:00 loop10 2.8626 12.0.1.2 S 00:65:0c:ca:00:00 loop10 Proxy arps enabled for: Fib_index 0 0.0.0.0 - 255.255.255.255 ---- show hardware GigabitEthernet0/4/0 Name Idx Link Hardware GigabitEthernet0/4/0 3 down GigabitEthernet0/4/0 Link speed: 10 Gbps Ethernet address de:ad:de:ad:00:01 Red Hat Virtio carrier down flags: admin-up pmd maybe-multiseg <sniped> ---- show hardware GigabitEthernet0/3/0 Name Idx Link Hardware GigabitEthernet0/3/0 2 up GigabitEthernet0/3/0 Link speed: 10 Gbps Ethernet address de:ad:de:ad:00:01 Red Hat Virtio carrier up full duplex mtu 9206 flags: admin-up pmd maybe-multiseg rx: queues 1 (max 1), desc 256 (min 0 max 65535 align 1) tx: queues 1 (max 1), desc 256 (min 0 max 65535 align 1) <snipped> Regarding the ARP responses dropped my understanding is that for an ARP reply are acceptable if we have a fib source via a api/cli on the interface enabling a successful arp reply src ip address lookup. That is essentially saying that the such a specific arp reply is valid as per the configuration, i am not sure about any harm with such a configuration as it is correct as per topology. Thanks Rupesh On Wed, Feb 3, 2021 at 7:15 PM Neale Ranns <ne...@graphiant.com> wrote: > > > Hi Rupesh, > > > > Dropping those ARP responses is a clue that you’re not doing something > right 😉 > > > > I would expect the ARP entry, adj and adj-source on the fib entry to be > removed (in that order) when the link goes down. ‘sh ip eighbours’ please. > > > > > https://github.com/FDio/vpp/blob/master/docs/gettingstarted/developers/fib20/routes.rst#adjacency-source-fib-entries > > > > /neale > > > > > > *From: *Rupesh Raghuvaran <rupesh.raghuva...@gmail.com> > *Date: *Wednesday, 3 February 2021 at 12:03 > *To: *Neale Ranns <ne...@graphiant.com> > *Cc: *vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> > *Subject: *Re: [vpp-dev] Fib entries as per show ip fib for prefix has > forwarding UNRESOLVED though packet is forwarded. > > Hi Neale, > > > > Thanks for your reply. > > > > I am adding a default route via 10.0.0.15 dev Ge0/4/0, a subnet route > 10.0.0.0/24 via 10.0.0.15 dev Ge0/4/0 and a host route to the > 10.0.0.15/32 on dev Ge0/4/0. No explicit arp entry is added. Without the > specific 10.0.0.15/32 on dev Ge0/4/0 link the arp ipv4 response for > 10.0.0.15 gets dropped for the reason src subnet not local to interface. > > On the link down of Ge0/4/0 all the routes specified above gets deleted. > But on the other link Ge0/3/0 we have similar routes, default route and > subnet route via 10.0.0.14 and host route to 10.0.0.14/32 on dev > Ge0/3/0. > > > > As per the fib log the src API based path gets removed but the src adj > based one remains. Even if the interface is down the adjacency source entry > remains the cover seems to get updated. to 7 , which is on a different > interface ie Ge0/3/0 than that is in the adjacency is still on Ge0/4/0. > > > > show ip fib 10.0.0.15 > ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] > locks:[src:plugin-hi:2, src:DHCP:7, src:adjacency:5, src:default-route:1, ] > 10.0.0.15/32 fib:0 index:8 locks:2 > src:adjacency refs:1 entry-flags:attached, > src-flags:added,contributing,active, cover:7 > path-list:[17] locks:2 uPRF-list:7 len:1 itfs:[3, ] > path:[18] pl-index:17 ip4 weight=1 pref=0 attached-nexthop: > 10.0.0.15 GigabitEthernet0/4/0^M > [@0]: ipv4 via 10.0.0.15 GigabitEthernet0/4/0: mtu:9000 > deaddead0005deaddead00010800 > Extensions: > path:18 > forwarding: UNRESOLVED > > > > and cover fib entry 7 specified above is the following. > > 7@10.0.0.0/24 > unicast-ip4-chain > [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:36 > to:[1770:254632]] > [0] [@5]: ipv4 via 10.0.0.14 GigabitEthernet0/3/0: mtu:9000 > deaddead0004deaddead00010800 > > > > > > When the interface is down is the corresponding fib entry sourced by the > adjacency expected to be deleted. ? Could you also explain a bit on the > adjacency source refinement? > > > > Thanks > > Rupesh > > > > > > > > > > On Wed, Feb 3, 2021 at 2:40 PM Neale Ranns <ne...@graphiant.com> wrote: > > Hi Rupesh, > > > > 10.0.0.15 remains unresolved after link down because there remains an > adjacency/ARP-entry for it on Ge0/4/0 – did you add a static one? It is > unresolved because it fails the adjacency source refinement criteria. > Packets to 10.0.0.15 are forwarded using the default route. This is > expected behaviour. > > > > Your use of unnumbered is unconventional. You’d get a better experience if > you used standard IP addressing. For example, add separate /31s on your > gigEs, then another /32 on the loopbacks. Add routes to the peer’s > loopbacks via your control plane agent. The tunnel endpoints should be the > loopback addresses. > > > > /neale > > > > > > *From: *vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> on behalf of Rupesh > Raghuvaran via lists.fd.io <rupesh.raghuvaran=gmail....@lists.fd.io> > *Date: *Tuesday, 2 February 2021 at 17:08 > *To: *vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> > *Subject: *[vpp-dev] Fib entries as per show ip fib for prefix has > forwarding UNRESOLVED though packet is forwarded. > > > > VPP is configured as router (R0) connects to two routers referred as R1 > and R2 , and there is direct link between R1 and R2 is connected. > > > > R0 has a loopback interface loop0 configured with 10.0.0.16/32 and > 10.0.0.18/32 , interface Ge0/3/0 and Ge0/4/0 is unnumbered to loop0 > > R0 Ge0/3/0 connects to R1 > > R0 Ge0/4/0 connecte to R2 > > > > R1 has a loopback interface with 10.0.0.14/32 and the R1-R0 interface > is unnumbered to that interface. > > R2 has a loopback interface with 10.0.0.15/32 and the R2-R0 interface > is unnumbered to that interface. > > > > > > R0 is configured with following routes > > > > 0.0.0.0/0 via 10.0.0.14 > > 0.0.0.0/0 via 10.0.0.15 > > 10.0.0.0/24 via 10.0.0.14 > > 10.0.0.0/24 via 10.0.0.15 > > 10.0.0.14/32 via Ge0/3/0 > > 10.0.0.15/32 via Ge0/4/0 > > > > with this configuration I am able to ping 10.0.0.15 and 10.0.0.14 on > respective link. > > > > show ip fib 10.0.0.15 > > ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] > locks:[src:plugin-hi:2, src:DHCP:7, src:adjacency:5, src:default-route:1, ] > > 10.0.0.15/32 fib:0 index:8 locks:3 > > src:API refs:1 entry-flags:attached, src-flags:added,contributing,active, > > path-list:[12] locks:2 flags:shared, uPRF-list:14 len:1 itfs:[3, ] > > path:[12] pl-index:12 ip4 weight=1 pref=0 attached-nexthop: > oper-flags:resolved, cfg-flags:attached, > > 10.0.0.15 GigabitEthernet0/4/0 > > [@0]: ipv4 via 10.0.0.15 GigabitEthernet0/4/0: mtu:9000 > deaddead0005deaddead00010800 > > > > src:adjacency refs:1 entry-flags:attached, src-flags:added, cover:-1 > > path-list:[17] locks:1 uPRF-list:7 len:1 itfs:[3, ] > > path:[18] pl-index:17 ip4 weight=1 pref=0 attached-nexthop: > oper-flags:resolved, > > 10.0.0.15 GigabitEthernet0/4/0^M > > [@0]: ipv4 via 10.0.0.15 GigabitEthernet0/4/0: mtu:9000 > deaddead0005deaddead00010800 > > Extensions: > > path:18 > > forwarding: unicast-ip4-chain > > [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:14 > to:[2020:207099]] > > [0] [@5]: ipv4 via 10.0.0.15 GigabitEthernet0/4/0: mtu:9000 > deaddead0005deaddead00010800 > > > > > > On Link down of Ge0/4/0 the control plange agent on the link down event > removes following routes > > ie corresponding to the one via the specific link set to down. > > 0.0.0.0/0 via 10.0.0.15 > > 10.0.0.0/24 via 10.0.0.15 > > 10.0.0.15/32 via Ge0/4/0 > > > > When the Ge0/4/0 link is down fib entry for 10.0.0.15 has forwarding > marked as UNRESOLVED. > > > > show ip fib 10.0.0.15 > > ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] > locks:[src:plugin-hi:2, src:DHCP:7, src:adjacency:5, src:default-route:1, ] > > 10.0.0.15/32 fib:0 index:8 locks:2 > > src:adjacency refs:1 entry-flags:attached, > src-flags:added,contributing,active, cover:7 > > path-list:[17] locks:2 uPRF-list:7 len:1 itfs:[3, ] > > path:[18] pl-index:17 ip4 weight=1 pref=0 attached-nexthop: > > 10.0.0.15 GigabitEthernet0/4/0 > > [@0]: ipv4 via 10.0.0.15 GigabitEthernet0/4/0: mtu:9000 > deaddead0005deaddead00010800 > > Extensions: > > path:18 > > forwarding: UNRESOLVED > > > > Its found that the packets destined to 10.0.0.15 is send out via the > Ge0/3/0 as expected even though it is marked unresolved. > > ie ping from R0 to R2 ip 10.0.0.15 via R1 when link from R0 to R2 is down > > > > > > 00:13:42:303487: ip4-input > > ICMP: 10.0.0.16 -> 10.0.0.15 > > tos 0x00, ttl 64, length 84, checksum 0xbd3c > > fragment id 0x694e, flags DONT_FRAGMENT > > ICMP echo_request checksum 0xe43a > > 00:13:42:303492: ip4-lookup > > fib 0 dpo-idx 3 flow hash: 0x00000000 > > ICMP: 10.0.0.16 -> 10.0.0.15 > > tos 0x00, ttl 64, length 84, checksum 0xbd3c > > fragment id 0x694e, flags DONT_FRAGMENT > > ICMP echo_request checksum 0xe43a > > 00:13:42:303497: ip4-rewrite > > tx_sw_if_index 2 dpo-idx 3 : ipv4 via 10.0.0.14 GigabitEthernet0/3/0: > mtu:9000 deaddead0004deaddead00010800 flow hash: 0x00000000 > > 00000000: > deaddead0004deaddead0001080045000054694e40003f01be3c0a0000100a00 > > 00000020: 000f0800e43a0a4700504066196000000000ea940600000000001011 > > 00:13:42:303500: GigabitEthernet0/3/0-output > > GigabitEthernet0/3/0 > > IP4: de:ad:de:ad:00:01 -> de:ad:de:ad:00:04 > > ICMP: 10.0.0.16 -> 10.0.0.15 > > tos 0x00, ttl 63, length 84, checksum 0xbe3c > > fragment id 0x694e, flags DONT_FRAGMENT > > ICMP echo_request checksum 0xe43a > > 00:13:42:303503: GigabitEthernet0/3/0-tx > > GigabitEthernet0/3/0 tx queue 0 > > buffer 0x18e07: current data -14, length 98, buffer-pool 0, ref-count 1, > trace handle 0x28 > > PKT MBUF: port 65535, nb_segs 1, pkt_len 98 > > buf_len 2176, data_len 98, ol_flags 0x0, data_off 114, phys_addr > 0x73a38240 > > packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0 > > rss 0x0 fdir.hi 0x0 fdir.lo 0x0 > > IP4: de:ad:de:ad:00:01 -> de:ad:de:ad:00:04 > > ICMP: 10.0.0.16 -> 10.0.0.15 > > tos 0x00, ttl 63, length 84, checksum 0xbe3c > > fragment id 0x694e, flags DONT_FRAGMENT > > ICMP echo_request checksum 0xe43a > > > > But for any gre tunnels with l2 adj index which refers to 10.0.0.15 seems > to have forwarding dpo-drop as drop. > > Why is the fib entry for 10.0.0.15 remains with forwarding unresolved ? > > I hope the configuration attempted is supported. Please find the related > logs and various fib related cli outputs before and after. > > Thanks in Advance > Rupesh > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#18660): https://lists.fd.io/g/vpp-dev/message/18660 Mute This Topic: https://lists.fd.io/mt/80318226/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-