Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mpls label not correctly programmed in fib #14

Open
tallexer opened this issue Nov 22, 2024 · 0 comments
Open

mpls label not correctly programmed in fib #14

tallexer opened this issue Nov 22, 2024 · 0 comments

Comments

@tallexer
Copy link

It seems the fib entry is missing the mpls label for the second pnh entry when the forwarding next hop goes out the same interface. Not sure if this is the culprit but that's what I am seeing when trying to program such a nh structure.

RIB

vtysh# show ip route 172.16.10.2/32
Routing entry for 172.16.10.2/32
  Known via "bgp", distance 200, metric 0, best
  Last update 00:12:59 ago
    192.168.255.105 (recursive), weight 1
  *   192.168.11.21, via Ethernet14, label 21, weight 1
    192.168.255.106 (recursive), weight 1
  *   192.168.11.21, via Ethernet14, label 22, weight 1

KERNEL

root:~# ip route show 172.16.10.2/32
172.16.10.2 nhid 184 proto bgp metric 20 
	nexthop  encap mpls  21 via 192.168.11.21 dev Ethernet14 weight 1 
	nexthop  encap mpls  22 via 192.168.11.21 dev Ethernet14 weight 1 

FIB

vpp# show ip fib 172.16.10.2/32
ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto flowlabel ] epoch:0 flags:none locks:[adjacency:1, default-route:1, lcp-rt:1, ]
172.16.10.2/32 fib:0 index:59 locks:2
  lcp-rt-dynamic refs:1 src-flags:added,contributing,active,
    path-list:[43] locks:6 flags:shared, uPRF-list:43 len:1 itfs:[3, ]
      path:[71] pl-index:43 ip4 weight=1 pref=20 attached-nexthop:  oper-flags:resolved,
        192.168.11.21 GigabitEthernet0/14/0
      [@0]: ipv4 via 192.168.11.21 GigabitEthernet0/14/0: mtu:1500 next:7 flags:[] 0000a13333330000a32222220800
      path:[69] pl-index:43 ip4 weight=1 pref=20 attached-nexthop:  oper-flags:resolved,
        192.168.11.21 GigabitEthernet0/14/0
      [@0]: ipv4 via 192.168.11.21 GigabitEthernet0/14/0: mtu:1500 next:7 flags:[] 0000a13333330000a32222220800
    Extensions:
     path:71  labels:[[21 pipe ttl:0 exp:0]]
 forwarding:   unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:62 buckets:2 uRPF:43 to:[0:0]]
    [0] [@14]: mpls-label[@5]:[21:64:0:eos]
        [@1]: mpls via 192.168.11.21 GigabitEthernet0/14/0: mtu:1500 next:2 flags:[] 0000a13333330000a32222228847
    [1] [@5]: ipv4 via 192.168.11.21 GigabitEthernet0/14/0: mtu:1500 next:7 flags:[] 0000a13333330000a32222220800

Version

vpp# show version 
vpp v24.10-rc2~0-g466b35053 built by root on build at 2024-10-24T14:05:22
vpp# show plugins 
 Plugin path is: /usr/lib/x86_64-linux-gnu/vpp_plugins

     Plugin                                   Version                          Description
  1. ioam_plugin.so                           24.10-rc2~0-g466b35053           Inbound Operations, Administration, and Maintenance (OAM)
  2. lldp_plugin.so                           24.10-rc2~0-g466b35053           Link Layer Discovery Protocol (LLDP)
  3. urpf_plugin.so                           24.10-rc2~0-g466b35053           Unicast Reverse Path Forwarding (uRPF)
  4. http_static_plugin.so                    24.10-rc2~0-g466b35053           HTTP Static Server
  5. l3xc_plugin.so                           24.10-rc2~0-g466b35053           L3 Cross-Connect (L3XC)
  6. mdata_plugin.so                          24.10-rc2~0-g466b35053           Buffer metadata change tracker.
  7. ping_plugin.so                           24.10-rc2~0-g466b35053           Ping (ping)
  8. tlsopenssl_plugin.so                     24.10-rc2~0-g466b35053           Transport Layer Security (TLS) Engine, OpenSSL Based
  9. avf_plugin.so                            24.10-rc2~0-g466b35053           Intel Adaptive Virtual Function (AVF) Device Driver
 10. l2tp_plugin.so                           24.10-rc2~0-g466b35053           Layer 2 Tunneling Protocol v3 (L2TP)
 11. pppoe_plugin.so                          24.10-rc2~0-g466b35053           PPP over Ethernet (PPPoE)
 12. pnat_plugin.so                           24.10-rc2~0-g466b35053           Policy 1:1 NAT
 13. srv6am_plugin.so                         24.10-rc2~0-g466b35053           Masquerading Segment Routing for IPv6 (SRv6) Proxy
 14. crypto_native_plugin.so                  24.10-rc2~0-g466b35053           Native Crypto Engine
 15. flowprobe_plugin.so                      24.10-rc2~0-g466b35053           Flow per Packet
 16. dpdk_plugin.so                           24.10-rc2~0-g466b35053           Data Plane Development Kit (DPDK)
 17. det44_plugin.so                          24.10-rc2~0-g466b35053           Deterministic NAT (CGN)
 18. hs_apps_plugin.so                        24.10-rc2~0-g466b35053           Host Stack Applications
 19. osi_plugin.so                            24.10-rc2~0-g466b35053           OSI plugin
 20. adl_plugin.so                            24.10-rc2~0-g466b35053           Allow/deny list plugin
 21. srmpls_plugin.so                         24.10-rc2~0-g466b35053           Segment Routing for MPLS plugin
 22. acl_plugin.so                            24.10-rc2~0-g466b35053           Access Control Lists (ACL)
 23. hsi_plugin.so                            24.10-rc2~0-g466b35053           Host Stack Intercept (HSI)
 24. crypto_openssl_plugin.so                 24.10-rc2~0-g466b35053           OpenSSL Crypto Engine
 25. dslite_plugin.so                         24.10-rc2~0-g466b35053           Dual-Stack Lite
 26. ikev2_plugin.so                          24.10-rc2~0-g466b35053           Internet Key Exchange (IKEv2) Protocol
 27. gre_plugin.so                            24.10-rc2~0-g466b35053           Generic Routing Encapsulation (GRE) plugin
 28. svs_plugin.so                            24.10-rc2~0-g466b35053           Source Virtual Routing and Forwarding (VRF) Select
 29. vrrp_plugin.so                           24.10-rc2~0-g466b35053           VRRP v3 (RFC 5798)
 30. nsim_plugin.so                           24.10-rc2~0-g466b35053           Network Delay Simulator
 31. af_packet_plugin.so                      24.10-rc2~0-g466b35053           af-packet
 32. dns_plugin.so                            24.10-rc2~0-g466b35053           Simple DNS name resolver
 33. lcpng_nl_plugin.so                       24.10-rc2~0-g466b35053           Linux Control Plane - Netlink listener
 34. mss_clamp_plugin.so                      24.10-rc2~0-g466b35053           TCP MSS clamping plugin
 35. pvti_plugin.so                           24.10-rc2~0-g466b35053           Packet Vector Tunnel Interface plugin
 36. cnat_plugin.so                           24.10-rc2~0-g466b35053           CNat Translate
 37. dhcp_plugin.so                           24.10-rc2~0-g466b35053           Dynamic Host Configuration Protocol (DHCP)
 38. vxlan_plugin.so                          24.10-rc2~0-g466b35053           VxLan Tunnels
 39. rdma_plugin.so                           24.10-rc2~0-g466b35053           RDMA IBverbs Device Driver
 40. vmxnet3_plugin.so                        24.10-rc2~0-g466b35053           VMWare Vmxnet3 Device Driver
 41. wireguard_plugin.so                      24.10-rc2~0-g466b35053           Wireguard Protocol
 42. lcpng_if_plugin.so                       24.10-rc2~0-g466b35053           Linux Control Plane - Interface Mirror
 43. igmp_plugin.so                           24.10-rc2~0-g466b35053           Internet Group Management Protocol (IGMP)
 44. nat_plugin.so                            24.10-rc2~0-g466b35053           Network Address Translation (NAT)
 45. memif_plugin.so                          24.10-rc2~0-g466b35053           Packet Memory Interface (memif) -- Experimental
 46. mactime_plugin.so                        24.10-rc2~0-g466b35053           Time-based MAC Source Address Filter
 47. nsh_plugin.so                            24.10-rc2~0-g466b35053           Network Service Header (NSH)
 48. nat64_plugin.so                          24.10-rc2~0-g466b35053           NAT64
 49. lisp_plugin.so                           24.10-rc2~0-g466b35053           Locator ID Separation Protocol (LISP)
 50. abf_plugin.so                            24.10-rc2~0-g466b35053           Access Control List (ACL) Based Forwarding
 51. http_plugin.so                           24.10-rc2~0-g466b35053           Hypertext Transfer Protocol (HTTP)
 52. ila_plugin.so                            24.10-rc2~0-g466b35053           Identifier Locator Addressing (ILA) for IPv6
 53. bpf_trace_filter_plugin.so               24.10-rc2~0-g466b35053           BPF Trace Filter Plugin
 54. gtpu_plugin.so                           24.10-rc2~0-g466b35053           GPRS Tunnelling Protocol, User Data (GTPv1-U)
 55. map_plugin.so                            24.10-rc2~0-g466b35053           Mapping of Address and Port (MAP)
 56. srv6mobile_plugin.so                     24.10-rc2~0-g466b35053           SRv6 GTP Endpoint Functions
 57. geneve_plugin.so                         24.10-rc2~0-g466b35053           GENEVE Tunnels
 58. stn_plugin.so                            24.10-rc2~0-g466b35053           VPP Steals the NIC (STN) for Container Integration
 59. tlspicotls_plugin.so                     24.10-rc2~0-g466b35053           Transport Layer Security (TLS) Engine, Picotls Based
 60. af_xdp_plugin.so                         24.10-rc2~0-g466b35053           AF_XDP Device Plugin
 61. nat44_ei_plugin.so                       24.10-rc2~0-g466b35053           IPv4 Endpoint-Independent NAT (NAT44 EI)
 62. arping_plugin.so                         24.10-rc2~0-g466b35053           Arping (arping)
 63. ct6_plugin.so                            24.10-rc2~0-g466b35053           IPv6 Connection Tracker
 64. cdp_plugin.so                            24.10-rc2~0-g466b35053           Cisco Discovery Protocol (CDP)
 65. lacp_plugin.so                           24.10-rc2~0-g466b35053           Link Aggregation Control Protocol (LACP)
 66. crypto_sw_scheduler_plugin.so            24.10-rc2~0-g466b35053           SW Scheduler Crypto Async Engine plugin
 67. ip_session_redirect_plugin.so            24.10-rc2~0-g466b35053           IP session redirect
 68. dev_ena_plugin.so                        24.10-rc2~0-g466b35053           dev_ena
 69. lb_plugin.so                             24.10-rc2~0-g466b35053           Load Balancer (LB)
 70. srv6as_plugin.so                         24.10-rc2~0-g466b35053           Static Segment Routing for IPv6 (SRv6) Proxy
 71. nat66_plugin.so                          24.10-rc2~0-g466b35053           NAT66
 72. srv6ad_plugin.so                         24.10-rc2~0-g466b35053           Dynamic Segment Routing for IPv6 (SRv6) Proxy
 73. dev_iavf_plugin.so                       24.10-rc2~0-g466b35053           dev_iavf
 74. vhost_plugin.so                          24.10-rc2~0-g466b35053           Vhost-User
 75. prom_plugin.so                           24.10-rc2~0-g466b35053           Prometheus Stats Exporter
 76. dma_intel_plugin.so                      24.10-rc2~0-g466b35053           Intel DSA Backend
 77. srv6adflow_plugin.so                     24.10-rc2~0-g466b35053           Dynamic Segment Routing for IPv6 (SRv6) Proxy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant