Commit Graph

31728 Commits

Author SHA1 Message Date
Mark Stapp
f827dc810c
Merge pull request #13258 from donaldsharp/evpn_ping
Evpn ping
2023-04-11 16:15:44 -04:00
Mark Stapp
425e2278d5
Merge pull request #13260 from donaldsharp/bgp_l3vpn_to_vrf_scale_up
tests: Ensure that the scale_up.py script tests for actual sharp inst…
2023-04-11 16:05:32 -04:00
Donatas Abraitis
55ca7c63fd
Merge pull request #13090 from pguibert6WIND/explicit_null
bgpd: add cli command to control explicit-null label usage
2023-04-11 22:48:01 +03:00
G. Paul Ziemba
c6a18e9128 bgpd: rfapi memleak fixes
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-04-11 12:27:36 -07:00
Christian Hopps
e40c42081d ripngd: adapt to new YANG NB if_rmap conversion
- uses YANG grouping and calls if_rmap library code to implement.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-04-11 15:27:17 -04:00
Christian Hopps
14ef7be7ca ripd: adapt to new YANG NB if_rmap conversion
- uses YANG grouping and calls if_rmap library code to implement.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-04-11 15:27:17 -04:00
Christian Hopps
efa2ca6ef0 lib: convert if_rmap to YANG northbound
- nice correspondence between new YANG grouping and shared library code.
- fixes bug with RIPNG use, certainly didn't work before.
- removes rip header from shared library code
- still has uses RIP_NODE/RIPNG_NODE as required by CLI foo.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-04-11 15:27:05 -04:00
Christian Hopps
2eb4471114 lib: fix formatting
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-04-11 15:26:09 -04:00
Donatas Abraitis
b69fa56517
Merge pull request #13213 from mjstapp/fix_dplane_shutdown_event
zebra: fix race during shutdown
2023-04-11 22:24:35 +03:00
Pooja Jagadeesh Doijode
5519cabe4c pimd: Option to get IGMP groups and sources for a particular interface
1. Added interface name, group address and detail option to existing
   "show ip igmp groups" so that user can retrieve all the groups
   or a particular group for an interface. Detail option shows the source
   information for the group. With that, the show command
   looks like:

   "show ip igmp [vrf NAME$vrf_name] groups [INTERFACE$ifname [GROUP$grp_str]] [detail$detail] [json$json]"

2. Changed pim_cmd_lookup_vrf() to return empty JSON if VRF is not present

3. Changed "detail" option to print non pretty JSON

4. Added interface name and group address to existing
   "show ip igmp sources" so that user can retrieve all the sources for
   all the groups or, all the sorces for a particular group for an
   interface. With that, the show command looks like:

   "show ip igmp [vrf NAME$vrf_name] sourcess [INTERFACE$ifname [GROUP$grp_str]] [json$json]"

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-04-11 11:00:39 -07:00
Donatas Abraitis
8ef1590927 doc: Add set extcommunity nt command for BGP route-maps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-11 20:28:41 +03:00
Donatas Abraitis
a070fa00ce
Merge pull request #13250 from chiragshah6/fdev1
bgpd:add local_es_df_preference into l2vpn-evpn es json output
2023-04-11 20:05:34 +03:00
Donald Sharp
66d0d2184e tests: Ensure that the scale_up.py script tests for actual sharp installed routes first
The scale_up.py script used by several tests installs 50k routes into the rib from
sharpd.  It is first looking for the results in the bgp database.  Let's ensure
that the routes are actually installed into the rib first before looking in
the bgp tables.  This should help situations where the system is under extreme
load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-11 10:49:34 -04:00
Donatas Abraitis
69173c6e5e
Merge pull request #13254 from manojvn/remove_startupjson_doc
mgmtd: remove the frr_startup.json related documentation.
2023-04-11 17:28:55 +03:00
Mark Stapp
86a36bad51 doc: add doc for ospf per-interface write socket
Add a doc entry for the per-interface write socket config.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-11 10:16:07 -04:00
Mark Stapp
04a0401f2d ospfd: support write socket per interface
Add support for a write socket per interface, enabled by
default at the ospf instance level. An ospf instance-level
config allows this to be disabled, reverting to the older
behavior where a single per-instance socket is used for
sending and receiving packets.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-11 10:16:07 -04:00
Philippe Guibert
eee086e6d2 topotests: add topotest to check bgp lu explicit-null service
The test ensures that the incoming prefixes are received with
the appropriate label value, and that connectivity is ensured
between prefixes.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-04-11 16:08:15 +02:00
Philippe Guibert
7ee70320d3 bgpd: add cli command to control explicit-null label usage
In BGP labeled unicast address-family, it is not possible to
send explicit-null label values with redistributed or network
declared prefixes.
A new CLI command is introduced:

  > [no] bgp labeled-unicast explicit-null

When used, the explicit-null value for IPv4 ('0' value) or
IPv6 ('2' value) will be used.
It is necessary to reconfigure the networks or the
redistribution in order to inherit this new behaviour.

Add the documentation.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-04-11 16:08:09 +02:00
Russ White
8ce2ce8eb8
Merge pull request #13163 from isabelladeleon12/isis_log_drops
isisd: Add support for log-pdu-drops
2023-04-11 09:55:24 -04:00
Russ White
f26a87cd24
Merge pull request #12698 from Orange-OpenSource/isisd
Isisd/Lib: Add new printfrr format facility for Intermediate System ID
2023-04-11 09:49:01 -04:00
Donald Sharp
d6f34434e8 tests: Cleanup formatting in a couple of test scripts
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-11 09:16:36 -04:00
Donald Sharp
18a8f40793 tests: Fix evpn tests to ensure mac addresses will show up
Locally, the bgp_evpn_vxlan_svd_topo1 and bgp_evpn_vxlan_topo1
tests are failing for me.  Upon inspection the test is looking
for the mac addresses of the interfaces participating in the
evpn bridging on the hosts.  For some reason on my machine
these mac addresses are not in the l2 tables at all on
PE1 or PE2.  Adding quick pings solves the problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-11 09:15:13 -04:00
Russ White
e80c797a1f
Merge pull request #13227 from mjstapp/ospf_sock_bufsizes
ospfd: support configuration of socket buffer sizes
2023-04-11 08:55:47 -04:00
Donatas Abraitis
bc818f2ff5
Merge pull request #13226 from anlancs/fix/ripd-leak
ripd: Fix memory leak for ripd's route-map
2023-04-11 14:37:40 +03:00
Donatas Abraitis
6231dde1cc
Merge pull request #13240 from chiragshah6/fdev2
bgpd: EVPN-MH ESI is not active suppress EAD-ES Type-1 route
2023-04-11 14:34:12 +03:00
Donatas Abraitis
48e829d40d
Merge pull request #13245 from anlancs/cleanup/ripd-1
ripd: Cosmetic changes for ripd
2023-04-11 14:31:51 +03:00
Manoj Naragund
edba9e6e7c mgmtd: remove the frr_startup.json related documentation.
Since mgmtd no longer supports the frr_startup.json, removing the
documentation related to that. Proper documentation will be added
when/if the frr_startup.json is ever supported.

Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
2023-04-11 04:03:58 -07:00
Christian Hopps
59cb833f6a
Merge pull request #13247 from donaldsharp/evpn_crashes_and_other_ilk
Evpn crashes and other ilk
2023-04-11 02:35:26 -04:00
Sindhu Parvathi Gopinathan
48ac5e1306 bgpd:add local_es_df_preference into l2vpn-evpn es json output
Added "Local ES DF preference" into bgp l2vpn evpn es json output.

 - show bgp l2vpn evpn es <es-id> json
 - show  bgp l2vpn evpn es detail json

Before Fix:-
```
cumulus@torm-11:mgmt:~$ sudo vtysh -c "show bgp l2vpn evpn es
03:44:38:39:ff:ff:01:00:00:01 json"
{
  "esi":"03:44:38:39:ff:ff:01:00:00:01",
  "rd":"27.0.0.21:15",
  "type":[
    "local",
    "remote"
  ],
  "vteps":[
    {
      "vtep_ip":"27.0.0.22",
      "flags":[
        "esr",
        "active"
      ],
      "dfPreference":32767,
      "dfAlgorithm":32767
    },
    {
      "vtep_ip":"27.0.0.23",
      "flags":[
        "esr",
        "active"
      ],
      "dfPreference":32767,
      "dfAlgorithm":32767
    }
  ],
  "vniCount":10,
  "flags":[
    "up",
    "advertiseEVI"
  ],
  "originator_ip":"27.0.0.21",
  "remoteVniCount":10,
  "vrfCount":3,
  "macipPathCount":33,
  "macipGlobalPathCount":132,
  "inconsistentVniVtepCount":0,
  "fragments":[
    {
      "rd":"27.0.0.21:15",
      "eviCount":10
    }
  ]
}
cumulus@torm-11:mgmt:~$
```

After Fix:-
```
cumulus@torm-11:mgmt:~$
cumulus@torm-11:mgmt:~$ sudo vtysh -c "show bgp l2vpn evpn es
03:44:38:39:ff:ff:01:00:00:01 json"
{
  "esi":"03:44:38:39:ff:ff:01:00:00:01",
  "rd":"27.0.0.21:4",
  "type":[
    "local",
    "remote"
  ],
  "vteps":[
    {
      "vtep_ip":"27.0.0.22",
      "flags":[
        "esr",
        "active"
      ],
      "dfPreference":32767,
      "dfAlgorithm":32767
    },
    {
      "vtep_ip":"27.0.0.23",
      "flags":[
        "esr",
        "active"
      ],
      "dfPreference":32767,
      "dfAlgorithm":32767
    }
  ],
  "vniCount":10,
  "flags":[
    "advertiseEVI"
  ],
  "originator_ip":"27.0.0.21",
  "remoteVniCount":10,
  "vrfCount":3,
  "macipPathCount":33,
  "macipGlobalPathCount":132,
  "inconsistentVniVtepCount":0,
  "localEsDfPreference":50000, ====> Added Local ES DF preference
  "fragments":[
    {
      "rd":"27.0.0.21:4",
      "eviCount":10
    }
  ]
}
cumulus@torm-11:mgmt:~$
```

Ticket:#3411906

Issue:3411906

Testing: UT done

Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
2023-04-10 21:08:27 -07:00
Pooja Jagadeesh Doijode
e25a0b138a zebra: Install directly connected route after interface flap
Issue:
After vlan flap, zebra was not marking the selected/best route as installed.

As a result, when a static route was configured with nexthop as directly
connected interface's(vlan) IP, the static route was not being installed
in the kernel since its nexthop was unresolved. The nexthop was marked
unresolved because zebra failed to mark the best route as installed after
interface flap.

This was happening because, in dplane_route_update_internal() if the old and
new context type, and nexthop group id are the same, then zebra doesn't send
down a route replace request to kernel. But, the installed (ROUTE_ENTRY_INSTALLED)
flag is set when zebra receives a response from kernel. Since the
request to kernel was being skipped for the route entry, installed flag
was not being set

Fix:
In dplane_route_update_internal() if the old and new context type, and
nexthop group id are the same, then before returning, installed flag will
be set on the route-entry if it's not set already.

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-04-10 16:03:23 -07:00
Donald Sharp
746e0522f3 bgpd: Do not allow a no router bgp XXX when autoimport is happening
When we have these sequence of events causing a crash in
evpn_type5_test_topo1:

(A) no router bgp vrf RED 100
   this schedules for deletion the vrf RED instance
(B) a l3vni change event from zebra
   this creates a bgp instance for VRF RED in some cases
   additionally it auto imports evpn routes into VRF RED
   Please note this is desired behavior to allow for the
   auto importation of evpn vrf routes
(C) no router bgp 100
   The code was allowing the deletion of the default
   instance and causing tests to crash.

Effectively the test in bgp_vty to allow/dissallow
the removal of the default instance was not correct
for the case when (B) happens.

Let's just not allow the command to succeed in this case as that
the test was wrong.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-10 14:14:01 -04:00
Donald Sharp
5a7c43c77e bgpd: Do not allow l3vni changes when shutting down
When a `no router bgp XXX` is issued and the bgp instance
is in the process of shutting down, do not allow a l3vni
change coming up from zebra to do anything.  We can just
safely ignore it at this point in time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-10 14:14:01 -04:00
Donald Sharp
ef96e3753f bgpd: Use the actual pointer type instead of a void
Let's cut to the chase, we know the pointer type and
it allows us to not to some gyrations.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-04-10 14:14:01 -04:00
Jafar Al-Gharaibeh
8b985768bf
Merge pull request #13239 from opensourcerouting/fix/enable_scripting_for_docker_alpine_build
docker: Fix --enable-scripting for Docker images
2023-04-10 11:29:20 -05:00
anlan_cs
b769fdc88b ripd: Simplify code for distance
Simplify the code for `rip_distance_apply()`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-04-10 15:53:07 +08:00
Sarita Patra
8b462d5579 pimd: Process no-forward BSM packet
Topology Used:
=============
Cisco---FRR4----FRR2

Initially PIM nbr is down between FRR4----FRR2 from FRR2 side
Cisco is sending BSR packet to FRR4.

Problem Statement:
=================
No shutdown the PIM neighbor on FRR2 towards FRR4.
FRR2, receives BSR packet immediately as the new neighbor
comes up. This BSR packet is having no-forward bit set.
FRR2 is not able to process the BSR packet, and drop the
BSR packet.

Root Cause:
==========
When PIMD comes up, we start BSM timer for 60 seconds.
Here, the value accept_nofwd_bsm is setting to false.

FRR2, when receives no-forward BSR packet, it is getting
accept_nofwd_bsm value as false.

So, it drops, the no-forward BSM packet.

Fix:
===
Set accept_nofwd_bsm as false after first BSM packet received.

Signed-off-by: Sarita Patra <saritap@vmware.com>
2023-04-09 22:30:44 -07:00
anlan_cs
fa9307852e ripd: Correct one debug log
Correct one debug log, which wrongly mixed address and port.

Before:
```
ripd[469497]: [NDAGH-Z85V7] rip_send_packet 3.3.3.4 > 224.0.0.9 (enp1s0)
ripd[469497]: [VEJY5-67P5X] SEND to 224.0.0.9520
```
After:
```
ripd[471330]: [NDAGH-Z85V7] rip_send_packet 3.3.3.4 > 224.0.0.9 (enp1s0)
ripd[471330]: [T8DFR-P09JH] SEND to 224.0.0.9 port 520
```

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-04-10 11:11:30 +08:00
Chirag Shah
c683b7baad bgpd:evpn-mh esi not active suppress ead-es route
update_type1_routes_for_evi() is called from
L3VNI/L2VNI up event, if ESI is not UP then
do not advertise EAD-ES Type-1 route.
Just like from multiple places EAD-ES route
origination checks for its oper status.

Ticket:#3413454
Issue:3413454

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
Signed-off-by: Chirag Shah <chirag@nvidia.com>
2023-04-08 13:36:16 -07:00
Donatas Abraitis
897bb1675e tests: Copy script1.lua for make dist
This is needed for `make dist` when building Docker images with Lua support.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-08 21:04:07 +03:00
Donatas Abraitis
9ad0c2f6b4 docker: Enable Lua (scripting) for Alpine images
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-08 21:04:07 +03:00
Donatas Abraitis
74675f8d44 build: Take LUA_LIBS from pkg-config
Alpine Linux has LUA_LIB with a broken path, let's use pkg-config to grab
the LUA_LIBS properly.

checking for library containing lua_load... no
configure: error: Lua 5.3 libraries are required to build with Lua support. No other version is supported.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-08 21:04:06 +03:00
Donald Sharp
48055cc48e
Merge pull request #13237 from LabNConsulting/chopps/fixriptest
tests: fix cause of intermittent failure
2023-04-08 09:23:22 -04:00
Christian Hopps
8d6765aa6d tests: fix cause of intermittent failure
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-04-08 04:03:11 +00:00
Mark Stapp
a63fecfb56 ospf,ospf6: fix json key typo supoort
Fix json key 'supoort' -> 'support'; add 1-year deprecation
notice; fix topotests to use corrected json key.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-07 16:19:01 -04:00
Mark Stapp
c42ac5f64b tests: replace deprecated ospf json keys
Replace many deprecated json keys in topotests after removing
those keys from ospfd.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-07 16:17:59 -04:00
Mark Stapp
f5419bf927 ospfd: remove deprecated json attrs for neighbor show
The date for removing some deprecated json attributes from
'show neighbor' has arrived, so remove the attrs (and the
CPP_NOTICE block).

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-07 16:17:59 -04:00
Jafar Al-Gharaibeh
d5243675f2
Merge pull request #13109 from LabNConsulting/topotest-cleanup
minor topotest cleanup
2023-04-07 14:45:33 -05:00
Igor Ryzhov
083369e16a
Merge pull request #13228 from LabNConsulting/chopps/json-via-yang
Update ripd YANG operational state (ECMP routes)
2023-04-07 17:56:54 +03:00
Olivier Dugeon
c62067c1a6 tests: Update TE topotests to follow new Edge Key
Following replacement of Edge Key type (uint64_t by new structure), this patch
updates the various TE topotests to the new Edge Key references.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-04-07 16:40:26 +02:00
Olivier Dugeon
f2dcaf3555 sharpd: Update TE to new Link State Edge key
Following the modification of the edge key in link state database
this patch updates the sharp_vty.c file to replace the old uint64_t edge key by
the new ls_edge_key structure when searching for an edge.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-04-07 16:40:26 +02:00