Commit Graph

1421 Commits

Author SHA1 Message Date
Renato Westphal
017714e3ad ospfd: implement Type-7 default routes for NSSA areas
Add the "default-information-originate" option to the "area X nssa"
command. That option allows the origination of Type-7 default routes
on NSSA ABRs and ASBRs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-03-31 19:28:15 -03:00
Jafar Al-Gharaibeh
277eb2e580
Merge pull request #13060 from opensourcerouting/feature/allow_peering_with_127.0.0.1
bgpd: Allow peering via 127.0.0.0/8
2023-03-31 00:14:27 -05:00
Donald Sharp
9cc377d4d7
Merge pull request #13078 from opensourcerouting/fix/set_distance_zero
bgpd: Do not allow setting `set distance` via route-maps to zero
2023-03-23 07:50:35 -04:00
Philippe Guibert
dab2df8dc0 doc: add bgp allocation-mode per nexthop information
Add bgp allocation-mode per nexthop information.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

PR=81857
Link: https://github.com/FRRouting/frr/pull/12646
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Acked-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-03-22 16:35:31 +01:00
Pushpasis Sarkar
5b08f6f9ea doc: Add documentation for MGMT daemon
This commit adds user documentation for the new MGMT daemon and
new FRR Management Framework.

Co-authored-by: Yash Ranjan <ranjany@vmware.com>
Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com>
Co-authored-by: Ujwal P <ujwalp@vmware.com>
Signed-off-by: Pushpasis Sarkar <pushpasis@gmail.com>
2023-03-21 22:09:10 -04:00
Donatas Abraitis
d58e6dbc71 bgpd: Do not allow setting set distance via route-maps to zero
It's not allowed to install routes with zero distance, let's disallow this
for route-maps as well.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-03-21 22:09:50 +02:00
Donatas Abraitis
8eb09e64d2 bgpd: Allow peering via 127.0.0.0/8
There are some specific edge-cases when is a need to run FRR and another FRR
and/or another BGP implementation on the same box. Relaxing 127.0.0.0/8 for
this case might be reasonable.

An example below peering via 127.0.0.0/8 between FRR and GoBGP:

```
% ss -ntlp | grep 179
LISTEN   0         4096              127.0.0.1:179              0.0.0.0:*
LISTEN   0         128               127.0.0.2:179              0.0.0.0:*

% grep 127.0.0.2 /etc/frr/daemons
bgpd_options="   -A 127.0.0.1 -l 127.0.0.2"

% grep local /etc/gobgp/config.toml
    local-address-list = ["127.0.0.1"]

donatas-pc# sh ip bgp summary

IPv4 Unicast Summary (VRF default):
BGP router identifier 192.168.10.17, local AS number 65001 vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 725 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
127.0.0.1       4      65002         7         7        0    0    0 00:02:02            0        0 N/A

Total number of neighbors 1
donatas-pc#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-03-21 13:19:44 +02:00
Donald Sharp
7c8478ed28
Merge pull request #13031 from opensourcerouting/ospf-show-database
ospfd: Improve the "show ip ospf database" command
2023-03-21 07:03:05 -04:00
Russ White
55cf5ea672
Merge pull request #12688 from dorDiogo/isis_hello_padding_sometimes
isisd: Add support for IS-IS hello padding during-adjacency-formation
2023-03-20 17:00:57 -04:00
Renato Westphal
a08f41b95b ospfd: Add "detail" option to "show ip ospf database"
This option is useful to dump detailed information about the LSDB using
a single command (instead of one command per LSA type).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-03-17 23:00:31 -03:00
Renato Westphal
b131b1ed9c ospfd: Refactor the "show ip ospf database" command
Combine all variations of this command into a single DEFPY to
improve maintainability. No behavioral changes intended.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-03-17 23:00:17 -03:00
anlan_cs
c3e691229e doc: Correct some words
Note that `ASNUM` in table, it is missing right parenthesis for
`(1-4294967295)`. So, adjust this table.

And correct other words for doc.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-03-06 17:12:50 +08:00
Isabella de Leon
102a6e2699 doc: Add CLI documentation for new advertise high metrics command
Update isisd docs with advertise-high-metrics config.

Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2023-02-28 11:39:12 -08:00
Diogo Oliveira
06fbbf2935 isisd,tests,doc: Rename hello padding sometimes to hello padding during-adjacency-formation
Signed-off-by: Diogo Oliveira <14191454+dorDiogo@users.noreply.github.com>
2023-02-28 09:54:02 -08:00
Diogo Oliveira
d73b209a42 doc: Add CLI documentation for new isis hello padding sometimes command
Signed-off-by: Diogo Oliveira <14191454+dorDiogo@users.noreply.github.com>
2023-02-28 09:52:30 -08:00
Russ White
617d2b71c0
Merge pull request #12840 from dorDiogo/isis_advertise_passive_only
isisd: Add support for IS-IS advertise-passive-only
2023-02-28 09:22:32 -05:00
Donatas Abraitis
ba995a720b
Merge pull request #12751 from Pdoijode/pdoijode/ospf-vrf-neighbor-detail-1
ospfd: Added missing fields and option to query specific neighbor in VRF
2023-02-24 11:56:28 +02:00
Diogo Oliveira
3f3608d8d7 isisd,doc: Add support for isis advertise-passive-only
Signed-off-by: Diogo Oliveira <14191454+dorDiogo@users.noreply.github.com>
2023-02-22 13:44:48 -08:00
Russ White
12906cb1c8
Merge pull request #12798 from donaldsharp/rib_match_multicast
Rib match multicast
2023-02-21 11:40:36 -05:00
Russ White
d86be4994f
Merge pull request #12832 from opensourcerouting/fix/deprecate_bgp_internet_community
bgpd: Deprecate BGP `internet` community
2023-02-21 11:35:26 -05:00
Russ White
eb9f54b872
Merge pull request #12805 from karlquan/kquan_self_orig
bgpd: BGP troubleshooting - Add a keyword self-originate to display o…
2023-02-21 08:38:07 -05:00
Russ White
ba755d35e5
Merge pull request #12248 from pguibert6WIND/bgpasdot
lib, bgp: add initial support for asdot format
2023-02-21 08:01:03 -05:00
Donatas Abraitis
e72983b95f
Merge pull request #12830 from anlancs/fix/doc-ripd-rst
doc: cosmetic changes for ripd
2023-02-19 13:09:15 +02:00
Donatas Abraitis
81a57d8181 bgpd: Deprecate BGP internet community
Quite a few well-known communities from IANA's list do
   not receive special treatment in Cisco IOS XR, and at least one
   community on Cisco IOS XR's special treatment list, internet == 0:0,
   is not formally a well-known community as it is not in [IANA-WKC] (it
   is taken from the Reserved range [0x00000000-0x0000FFFF]).

https://datatracker.ietf.org/doc/html/rfc8642

This is Cisco-specific command which is causing lots of questions when it
comes to debugging and/or configuring it properly, but overall, this behavior
is very odd and it's not clear how it should be treated between different
vendor implementations.

Let's deprecate it and let the operators use 0:0/0 communities as they want.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-02-17 18:53:01 +02:00
anlan_cs
e71a942431 doc: cosmetic changes for ripngd
Correct `ripngd` doc based on code, and remove one non-existed command.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-02-17 22:00:43 +08:00
anlan_cs
e4c8793562 doc: cosmetic changes for ripd
Correct `ripd` doc based on code.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-02-17 22:00:40 +08:00
Donald Sharp
a15b0b1024
Merge pull request #12727 from opensourcerouting/feature/bgp_software_version_capability
bgpd: Software Version Capability
2023-02-17 08:18:22 -05:00
Donald Sharp
e6174ae2cb doc: Add show ipv6 rpf X:X::X:X command to docs
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-02-16 07:52:35 -05:00
Karl Quan
83856649b3 bgpd: BGP troubleshooting - Add a keyword self-originate to display only self-originated prefixes when looking at the BGP table for a given address-family
Add a keyword self-originate" to extend current CLI commands to filter out self-originated routes only

a\) CLI to show ipv4/ipv6 self-originated routes
	"show [ip] bgp [afi] [safi] [all] self-originate [wide|json]"

b\) CLI to show evpn self-originated routes
    "show bgp l2vpn evpn route [detail] [type <ead|macip|multicast|es|prefix|1|2|3|4|5>] self-originate [json]"

Signed-off-by: Karl Quan <kquan@nvidia.com>
2023-02-15 14:14:28 -08:00
Donatas Abraitis
bf9bc2e5f2
Merge pull request #12794 from anlancs/fix/doc-pid-path
doc: correct the pid path for daemons
2023-02-16 00:04:19 +02:00
Donatas Abraitis
234f6fd4f4 bgpd: Add BGP Software Version Capability
Implement: https://datatracker.ietf.org/doc/html/draft-abraitis-bgp-version-capability

Tested with GoBGP:

```
% ./gobgp neighbor 192.168.10.124
BGP neighbor is 192.168.10.124, remote AS 65001
  BGP version 4, remote router ID 200.200.200.202
  BGP state = ESTABLISHED, up for 00:01:49
  BGP OutQ = 0, Flops = 0
  Hold time is 3, keepalive interval is 1 seconds
  Configured hold time is 90, keepalive interval is 30 seconds

  Neighbor capabilities:
    multiprotocol:
        ipv4-unicast:	advertised and received
        ipv6-unicast:	advertised
    route-refresh:	advertised and received
    extended-nexthop:	advertised
        Local:  nlri: ipv4-unicast, nexthop: ipv6
    UnknownCapability(6):	received
    UnknownCapability(9):	received
    graceful-restart:	advertised and received
        Local: restart time 10 sec
	    ipv6-unicast
	    ipv4-unicast
        Remote: restart time 120 sec, notification flag set
	    ipv4-unicast, forward flag set
    4-octet-as:	advertised and received
    add-path:	received
      Remote:
         ipv4-unicast:	receive
    enhanced-route-refresh:	received
    long-lived-graceful-restart:	advertised and received
        Local:
	    ipv6-unicast, restart time 10 sec
	    ipv4-unicast, restart time 20 sec
        Remote:
	    ipv4-unicast, restart time 0 sec, forward flag set
    fqdn:	advertised and received
      Local:
         name: donatas-pc, domain:
      Remote:
         name: spine1-debian-11, domain:
    software-version:	advertised and received
      Local:
         GoBGP/3.10.0
      Remote:
         FRRouting/8.5-dev-MyOwnFRRVersion-gdc92f44a45-dirt
    cisco-route-refresh:	received
  Message statistics:
```

FRR side:

```
root@spine1-debian-11:~# vtysh -c 'show bgp neighbor 192.168.10.17 json' | \
> jq '."192.168.10.17".neighborCapabilities.softwareVersion.receivedSoftwareVersion'
"GoBGP/3.10.0"
root@spine1-debian-11:~#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-02-15 23:14:48 +02:00
Olivier Dugeon
e2b958ecbc
Merge pull request #12494 from louis-6wind/ext_admin_group
lib,zebra,isisd: add support for extended admin group RFC7308
2023-02-15 09:42:03 +01:00
Russ White
423c803580
Merge pull request #12728 from opensourcerouting/feature/bgp_neighbor_path-attribute_treat_as_withdraw
bgpd: Add neighbor path-attribute treat-as-withdraw command
2023-02-14 11:22:16 -05:00
Russ White
bb7f02328f
Merge pull request #12796 from donaldsharp/routemap_debugging
Routemap debugging
2023-02-14 09:35:06 -05:00
anlan_cs
0416ce1ca6 doc: correct the pid path for daemons
Adjust doc:
1. Correct the pid path for daemons
2. Add empty line before `kill` command
3. Remove one useless line in "ripd.rst"

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-02-14 14:02:31 +08:00
Stephen Worley
9d33108db9 doc: remove "new way" for SVD docs
remove "new way" for SVD docs as this could become
stale and become the "old way" at some point.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2023-02-13 18:12:05 -05:00
Stephen Worley
a04e18c9e8 doc: add docs for show evpn access-vlan
Add docs for `show evpn access-vlan`

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2023-02-13 18:12:05 -05:00
Sharath Ramamurthy
aeefc6028b zebra: Add documentation for Single Vxlan Device support
Add documentation for single vxlan device suppport and configuration
commands

Signed-off-by: Sharath Ramamurthy <sramamurthy@nvidia.com>
2023-02-13 18:12:04 -05:00
Donald Sharp
0c896167f3 doc: Add documentation for debug routemap [detail]
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-02-13 09:40:47 -05:00
Louis Scalbert
66a45dae56 doc: add extended admin-group user documentation
Add the extended admin-group user documentation using affinity-maps.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-02-10 14:13:46 +01:00
Philippe Guibert
e55b088399 bgpd: add as-notation keyword to 'router bgp' vty command
A new keyword permits changing the BGP as-notation output:
- [no] router bgp <> [vrf BLABLA] [as-notation [<dot|plain|dot+>]]

At the BGP instance creation, the output will inherit the way the
BGP instance is declared. For instance, the 'router bgp 1.1'
command will configure the output in the dot format. However, if
the client wants to choose an alternate output, he will have to
add the extra command: 'router bgp 1.1 as-notation dot+'.

Also, if the user wants to have plain format, even if the BGP
instance is declared in dot format, the keyword can also be used
for that.

The as-notation output is only taken into account at the BGP
instance creation. In the case where VPN instances are used,
a separate instance may be dynamically created. In that case,
the real as-notation format will be taken into acccount at the
first configuration.

Linking the as-notation format with the BGP instance makes sense,
as the operators want to keep consistency of what they configure.

One technical reason why to link the as-notation output with the
BGP instance creation is that the as-path segment lists stored
in the BGP updates use a string representation to handle aspath
operations (by using regexp for instance). Changing on the fly
the output needs to regenerate this string representation to the
correct format. Linking the configuration to the BGP instance
creation avoids refreshing the BGP updates. A similar mechanism
is put in place in junos too.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-02-10 10:27:23 +01:00
Pooja Jagadeesh Doijode
2e86198322 ospfd: Fix "show ip ospf neighbor swp1 detail json" output
1. When OSPF unnumbered neighbor doesn't exist in any VRF,
   OSPFD prints a bunch of empty JSON objects. Fixed it
   by adding an outer JSON object with VRF information in it
2. Added "vrf" option to this command so that per VRF
   unnumbered OSPF neighbor information can be retrieved

JSON output:
    nl1# show ip ospf neighbor swp1 detail json
        {
          "default":{
          },
          "vrf1012":{
          },
          "vrf1013":{
          },
          "vrf1014":{
          }
        }

    nl1# show ip ospf vrf vrf1012 neighbor swp4.2 detail json
        {
          "9.9.12.10":[
            {
              "ifaceAddress":"200.254.2.46",
              "areaId":"0.0.0.0",
              "ifaceName":"swp4.2",
              "localIfaceAddress":"200.254.2.45",
              "nbrPriority":1,
              "nbrState":"Full",
              "role":"DR",
              "stateChangeCounter":6,
              "lastPrgrsvChangeMsec":1462758,
              "routerDesignatedId":"200.254.2.46",
              "routerDesignatedBackupId":"200.254.2.45",
              "optionsCounter":2,
              "optionsList":"*|-|-|-|-|-|E|-",
              "routerDeadIntervalTimerDueMsec":37140,
              "databaseSummaryListCounter":0,
              "linkStateRequestListCounter":0,
              "linkStateRetransmissionListCounter":0,
              "threadInactivityTimer":"on",
              "threadLinkStateRequestRetransmission":"on",
              "threadLinkStateUpdateRetransmission":"on"
            }
          ]
        }
        nl1#

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-02-08 14:34:06 -08:00
Trey Aspelund
200631aa65 doc: optional keyword info for bestpath-routes
Adds information about the optional keywords for the bestpath-routes
bgp show command.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2023-02-08 21:07:02 +00:00
Trey Aspelund
bda4a61288 doc: prefix match for advertised/received-routes
Doc changes for new prefix matching.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2023-02-08 21:07:02 +00:00
Donatas Abraitis
70a029ef1c doc: Add neighbor path-attribute treat-as-withdraw command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-02-01 22:57:34 +02:00
Donald Sharp
0876b4c1b8 vtysh: Schedule shell access for deprecation
Schedule shell access for deprecation and removal in
a years time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-02-01 10:29:02 -05:00
Donatas Abraitis
e9dbc60ee2
Merge pull request #12666 from donaldsharp/bgp_outq_limit
Bgp outq limit
2023-01-20 11:59:34 +02:00
Donald Sharp
c4e0a69677
Merge pull request #12651 from opensourcerouting/fix/revert_bgp_orr
Revert BGP Optimal route reflector feature
2023-01-19 12:24:17 -05:00
Donald Sharp
963b7ee448 bgpd: Limit peer output queue length like input queue length
Consider this scenario:

Lots of peers with a bunch of route information that is changing
fast.  One of the peers happens to be really slow for whatever
reason.  The way the output queue is filled is that bgpd puts
64 packets at a time and then reschedules itself to send more
in the future.  Now suppose that peer has hit it's input Queue
limit and is slow.  As such bgp will continue to add data to
the output Queue, irrelevant if the other side is receiving
this data.

Let's limit the Output Queue to the same limit as the Input
Queue.  This should prevent bgp eating up large amounts of
memory as stream data when under severe network trauma.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-01-19 11:48:01 -05:00
Donatas Abraitis
7475ed3330
Merge pull request #12449 from chiragshah6/mdev1
zebra: vrf-id support for show vrf vni json cmd
2023-01-17 18:25:01 +02:00
Donatas Abraitis
cb6e090a90 Revert "doc: Add documentation for BGP ORR support"
This reverts commit 2b55ff400f.
2023-01-17 18:15:50 +02:00
Donatas Abraitis
3228977f58 Revert "ospfd: few fixes in rSPF calc when LSA received from non root node"
This reverts commit 9f2984d97c.
2023-01-17 18:09:55 +02:00
Russ White
2a71812153
Merge pull request #12601 from opensourcerouting/feature/bgp_neighbor_path-attribute_discard
bgpd: Add `neighbor path-attribute discard` command
2023-01-17 09:12:17 -05:00
Donatas Abraitis
563212ee3e doc: Add neighbor path-attribute discard command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-01-14 21:29:41 +02:00
Chirag Shah
4300ed1004 doc: add documentation for show vrf vni
Signed-off-by: Chirag Shah <chirag@nvidia.com>
2023-01-13 13:49:21 -08:00
Rafael Zalamena
a89958e508 doc: document new static BFD commands
Let the user know how to use the static route monitoring commands.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2023-01-13 15:32:12 -03:00
Chirag Shah
5bfa80138f doc: add documentation for show bgp vrfs
Signed-off-by: Chirag Shah <chirag@nvidia.com>
2023-01-11 21:04:09 -08:00
Donald Sharp
57e3f78414 doc: Ensure that the underline length is correct
Builds are complaining about this issue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-01-11 10:43:39 -05:00
Donatas Abraitis
2d02b3372d
Merge pull request #12622 from taspelund/adj-rib-json
bgpd: add "detail" for advertised/received-routes
2023-01-11 15:25:48 +02:00
Donatas Abraitis
4b6667ce61
Merge pull request #12578 from Pdoijode/evpn-mac-vni-det
zebra: Evpn mac vni detail show command
2023-01-11 12:06:37 +02:00
Trey Aspelund
1b9d2d6091 doc: add "detail" advertised/received routes
Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2023-01-10 20:05:11 +00:00
Jafar Al-Gharaibeh
61615e4dfd
Merge pull request #12606 from opensourcerouting/fixes-20230106
*: various build fixes
2023-01-09 12:26:29 -06:00
Donatas Abraitis
a8adf1b3cb
Merge pull request #12573 from Pdoijode/bgp-nexthop-json-changes
Bgp nexthop json changes
2023-01-07 21:01:06 +02:00
David Lamparter
26eaf6e386 build: add doc files missing from dist tarball
The override.css/js files for sphinx docs were not being included into
the tarball created by `make dist`.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-01-06 17:07:47 +01:00
Pooja Jagadeesh Doijode
071ec807cb bgpd: AFI option to query nexthops based on AFI
Added ipv4 and ipv6 option to existing "show bgp nexthop"
command to be able to query nexthops that belong to a
particular address-family.

Also fixed the warnings of MR 12171

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-01-04 18:53:12 -08:00
Pooja Jagadeesh Doijode
283ef1b0d3 zebra: Evpn mac vni detail show command
New show command "show evpn mac vni xx detail [json]"
to display details of all the mac entries for the
requested VNI.

Output of show evpn mac vni xx detail json:
        {
          "numMacs":2,
          "macs":{
            "ca:be:63:7c:81:05":{
              "type":"local",
              "intf":"veth100",
              "ifindex":8,
              "uptime":"00:06:55",
              "localSequence":0,
              "remoteSequence":0,
              "detectionCount":0,
              "isDuplicate":false,
              "syncNeighCount":0,
              "neighbors":{
                "active":[
                  "fe80::c8be:63ff:fe7c:8105"
                ],
                "inactive":[
                ]
              }
            }
          }
        }

Also added remoteEs field in the JSON output of
"show evpn mac vni xx json".

Output of show evpn mac vni xx json:
"00:02:00:00:00:0d":{
  "type":"remote",
  "remoteEs":"03:44:38:39:ff:ff:02:00:00:02",
  "localSequence":0,
  "remoteSequence":0,
  "detectionCount":0,
  "isDuplicate":false
}

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-01-03 15:17:58 -08:00
Pooja Jagadeesh Doijode
bf85e4c5f1 bgpd: add json option to show commands in bgp_nexthop
Commands with json option:
 - show bgp nexthop
 - show bgp import-check-table

Example output below, "nexthop" and "import-check-table" are only
different in the nexthop entries, the format is the same
```
leaf-A# show bgp nexthop 10.11.10.1 detail json
{
  "nexthops":{
    "10.11.10.1":{
      "valid":true,
      "complete":true,
      "igpMetric":0,
      "pathCount":1,
      "peer":"10.11.10.1",
      "gates":[
        {
          "ifname":"eth1"
        }
      ],
      "lastUpdate":{
        "epoch":1669161758,
        "string":"Wed Nov 23 00:02:38 2022\n"
      },
      "paths":[
        {
          "afi":"IPv4",
          "safi":"unicast",
          "prefix":"192.168.11.0/24",
          "vrf":"default",
          "flags":[
            "valid",
            "dmedSelected",
            "counted"
          ]
        }
      ]
    }
  }
}
leaf-A# show bgp nexthop json
{
  "nexthops":{
    "10.10.10.1":{
      "valid":true,
      "complete":true,
      "igpMetric":0,
      "pathCount":1,
      "peer":"10.10.10.1",
      "gates":[
        {
          "ifname":"eth0"
        }
      ],
      "lastUpdate":{
        "epoch":1669161758,
        "string":"Wed Nov 23 00:02:38 2022\n"
      }
    },
    "10.11.10.1":{
      "valid":true,
      "complete":true,
      "igpMetric":0,
      "pathCount":1,
      "peer":"10.11.10.1",
      "gates":[
        {
          "ifname":"eth1"
        }
      ],
      "lastUpdate":{
        "epoch":1669161758,
        "string":"Wed Nov 23 00:02:38 2022\n"
      }
    }
  }
}

```

Signed-off-by: Yaroslav Fedoriachenko <yar.fed99@gmail.com>
2022-12-28 13:43:50 -08:00
Russ White
962ae985ee
Merge pull request #12515 from opensourcerouting/fix/show_ip_bgp_detail_weird_output
bgpd: Show the real prefix for `show bgp detail`
2022-12-27 15:05:55 -05:00
Jafar Al-Gharaibeh
3cb40f8000
Merge pull request #12561 from opensourcerouting/feature/update_snmp_documentation
doc: Add an example of how to query SNMP for BGP
2022-12-24 19:45:48 -06:00
Oleg A. Arkhangelsky
b9450ff104 doc: Fix EVPN documentation minor error
Signed-off-by: Oleg A. Arkhangelsky <sysoleg@yandex.ru>
2022-12-23 17:49:01 +00:00
Donatas Abraitis
cef8b8591d doc: Add an example of how to query SNMP for BGP
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-12-22 18:25:50 +02:00
Donatas Abraitis
711835d986 doc: Add new command show bgp detail-routes
```
donatas-pc# show bgp all detail-routes

For address family: IPv4 Unicast
BGP table version is 11, local router ID is 192.168.10.17, vrf id 0
Default local pref 100, local AS 65002
BGP routing table entry for 10.0.2.0/24, version 1
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.124
  65001
    192.168.10.124 from 192.168.10.124 (200.200.200.202)
      Origin incomplete, metric 0, valid, external, otc 65001, best (First path received)
      Last update: Tue Dec 20 12:11:52 2022
BGP routing table entry for 10.10.100.0/24, version 2
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.124
  65001
    192.168.10.124 from 192.168.10.124 (200.200.200.202)
      Origin IGP, metric 0, valid, external, otc 65001, best (First path received)
      Last update: Tue Dec 20 12:11:52 2022
BGP routing table entry for 172.16.31.1/32, version 3
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.124
  65001
    192.168.10.124 from 192.168.10.124 (200.200.200.202)
      Origin incomplete, metric 0, valid, external, otc 65001, best (First path received)
      Last update: Tue Dec 20 12:11:52 2022
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-12-20 12:19:37 +02:00
Donatas Abraitis
4f4728b678
Merge pull request #12380 from chiragshah6/zdev
ospfd: json support for show ip ospf border-routers
2022-12-19 23:37:59 +02:00
Chirag Shah
33d7e50d01 doc: add documentation for show ospf border-routers
Signed-off-by: Chirag Shah <chirag@nvidia.com>
2022-12-16 08:46:10 -08:00
Chirag Shah
d358780207 doc: add documentation for show ip nht route-map
Signed-off-by: Chirag Shah <chirag@nvidia.com>
2022-12-16 08:42:53 -08:00
Donatas Abraitis
d1008e9dbb
Merge pull request #12513 from Pdoijode/master
zebra: JSON support for show nexthop-group rib
2022-12-15 08:48:35 +02:00
Pooja Jagadeesh Doijode
12a8def3ea zebra: JSON support for show nexthop-group rib
Added JSON support for show nexthop-group rib
command.

JSON output:
                {
                  "10":{
                    "type":"zebra",
                    "refCount":3,
                    "uptime":"00:00:46",
                    "vrf":"default",
                    "valid":true,
                    "installed":true,
                    "interfaceIndex":3,
                    "nexthops":[
                      {
                        "flags":3,
                        "fib":true,
                        "ip":"2001::2",
                        "afi":"ipv6",
                        "interfaceIndex":3,
                        "interfaceName":"eth0",
                        "vrf":"default",
                        "active":true,
                        "weight":1
                      }
                    ]
                  }
                }

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2022-12-14 10:46:32 -08:00
Donatas Abraitis
f2b72ef474
Merge pull request #12487 from anlancs/fix/fix-doc-ospf
doc: fix an incomplete command for ospf
2022-12-11 21:38:30 +02:00
anlan_cs
118e4e8cdc doc: fix an incomplete command for ospf
The command of "show ip ospf" is incomplete. But "show ipv6 ospf" is fine.

Just complete it with actual parameters.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-12-10 16:46:40 +08:00
Donald Sharp
1d1103a25c doc: Clarify asic offload documentation in zebra
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-12-09 15:56:14 -05:00
Trey Aspelund
433d9566bf doc: add FRR/Linux configuration examples for EVPN
The existing EVPN documentation in bgp.rst does not provide a holistic
configuration, just examples of individual features, and doesn't give
an operator any idea of what a compatible Linux netdev configuration
might look like. This introduces evpn.rst which includes a sample
frr.conf and corresponding Linux interface config (via iproute2) that
an operator can use to setup a basic EVPN topology and model their
interface manager's config from.

This initial version of evpn.rst shows Linux netdev config for
traditional bridges (vlan_filtering=0) and traditional vxlan devices
(single VNI). Later changes to this file will cover the use of
VLAN-aware bridges (vlan_filtering=1), single VXLAN devices
(multi VNI), and eventually bonds (for EVPN-MH).

Eventually the plan is to move the existing EVPN content from bgp.rst
into evpn.rst, but for now let's get some user-facing documentation in
place for interface configs.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2022-12-08 14:34:20 -05:00
Russ White
d3e7592557
Merge pull request #12390 from sigeryang/vrrp-interop
vrrpd: add IPv4 pseudoheader option for VRRPv3
2022-12-06 08:57:17 -05:00
Russ White
be51a45984
Merge pull request #12410 from ghzserg/master
Add motd command
2022-12-06 08:55:20 -05:00
Donatas Abraitis
8d80b8e273 doc: Update BGP community-list handling example
Documentation ways that community-list works as OR when multiple community
values specified per entry, but it's wrong. It must be AND, let's fix this.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-12-04 22:28:26 +02:00
Sergei Rozhkov
012f7ae4e9 vtysh: add motd command
Add "show motd" commad.
The vtysh user can call the "show motd" command to re-show the welcome message.
This is necessary if the user saves frequently used commands in motd.

Signed-off-by: Sergei Rozhkov <gh@zserg.ru>
2022-11-30 09:43:55 +05:00
Russ White
dd6e0bc0cc
Merge pull request #12329 from opensourcerouting/feature/graceful-shutdown_per_peer
bgpd: Implement graceful-shutdown command per neighbor
2022-11-29 08:47:20 -05:00
Sindhu Parvathi Gopinathan
780563cc8b zebra: json support for show ip nht
show ip/ipv6 nht vrf <all | name> json support added.

Commands enhanced with JSON:
----------------------------
show ip nht json
show ip nht <addr> json
show ipv6 nht json
show ipv6 nht <addr> json
show ip nht vrf <name> json
show ip nht vrf all json
show ipv6 nht vrf <name> json
show ipv6 nht vrf all json
show ip nht vrf default <addr> json
show ipv6 nht vrf default <addr> json

Sample JSON output:
-------------------

tor-1# show ip nht vrf default json
{
  "default":{
    "nexthops":{
      "27.0.0.5":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":70,
            "protocolFiltered":"none"
          }
        ],
        "gates":[
          {
            "ip":"fe80::202:ff:fe00:2b",
            "interface":"uplink_1"
          },
          {
            "ip":"fe80::202:ff:fe00:35",
            "interface":"uplink_2"
          }
        ],
        "resolvedProtocol":"bgp"
      },
      "27.0.0.6":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":70,
            "protocolFiltered":"none"
          }
        ],
        "gates":[
          {
            "ip":"fe80::202:ff:fe00:2b",
            "interface":"uplink_1"
          },
          {
            "ip":"fe80::202:ff:fe00:35",
            "interface":"uplink_2"
          }
        ],
        "resolvedProtocol":"bgp"
      }
    }
  }
}

tor-1# show ipv6 nht vrf default json
{
  "default": {
    "nexthops": {
      "fe80::202:ff:fe00:25": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      },
      "fe80::202:ff:fe00:2b": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      }
    }
  }
}

tor-1# show ipv6 nht vrf all json
{
  "default": {
    "nexthops": {
      "fe80::202:ff:fe00:25": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      },
      "fe80::202:ff:fe00:2b": {
        "nhtConnected": true,
        "clientList": [
          {
            "protocol": "bgp",
            "socket": 45,
            "protocolFiltered": "none"
          }
        ],
        "gates": [
          {
            "interface": "swp1",
            "directlyConnected": true
          }
        ],
        "resolvedProtocol": "connected"
      }
    }
  },
  "mgmt": {
    "nexthops": {}
  },
  "sym_1": {
    "nexthops": {}
  }
}

Ticket:#3229013
Issue:3229013

Testing Done: Unit test completed.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Sindhu Parvathi Gopinathan <sgopinathan@nvidia.com>
2022-11-28 15:38:09 -08:00
Siger Yang
7ef70ad5d4
doc: add vrrp interoperability help and command
Add VRRPv3 `checksum-with-ipv4-pseudoheader` command and
interoperability help text.

Signed-off-by: Siger Yang <siger.yang@outlook.com>
2022-11-29 03:59:23 +08:00
Donatas Abraitis
79e9f21287
Merge pull request #12369 from mruprich/frr-run-as-non-root
tools: Enable start of FRR for non-root user
2022-11-28 11:31:36 +02:00
Ashwini Reddy
fa5a9276d1 bgpd: JSON support for show ip bgp vrf all update-group
Ticket:#3229030
Testing Done: UT

Changes:

 - JSON support for the update group command.

Testing:

torc-11# show ip bgp vrf all ipv6 update-groups json

torc-12# show bgp vrf all update-groups json
{
  "default":{
    "2":{
      "groupCreateTime":{
        "epoch":1669225617,
        "epochString":"Wed Nov 23 17:46:57 2022\n"
      },
      "afi":"IPv6",
      "safi":"unicast",
      "outRouteMap":"MY_ORIGIN_ASPATH_ONLY",
      "minRouteAdvInt":0,
      "subGroup":[
        {
          "subGroupId":2,
          "groupCreateTime":{
            "epoch":1669225617,
            "epochString":"Wed Nov 23 17:46:57 2022\n"
          },
          "statistics":{
            "joinEvents":2,
            "pruneEvents":0,
            "mergeEvents":0,
            "splitEvents":0,
            "switchEvents":0,
            "peerRefreshEvents":0,
            "mergeCheckEvents":2
          },
          "coalesceTime":1100,
          "version":12,
          "packetQueueInfo":{
            "qeueueLen":0,
            "queuedTotal":1,
            "queueHwmLen":1,
            "totalEnqueued":1
          },
          "adjListCount":1,
          "needsRefresh":false,
          "peers":[
            "uplink_1",
            "uplink_2"
          ]
        }
      ]
    }
  }
}
{
  "sym_3":{
  }
}
{
  "sym_5":{
  }
}
{
  "sym_2":{
  }
}
{
  "sym_4":{
  }
}
{
  "sym_1":{
  }
}

Co-authored-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Ashwini Reddy <ashred@nvidia.com>
2022-11-23 19:04:00 -08:00
Michal Ruprich
d8743c28ea doc: Adding a description for a new option
Documentation for FRR_NO_ROOT option added to the
/etc/frr/daemons file

Signed-off-by: Michal Ruprich <mruprich@redhat.com>
2022-11-23 10:19:33 +01:00
Donatas Abraitis
9961cffbe0
Merge pull request #12336 from cscarpitta/fix/increase-sid-index-limit
bgpd: Fix SRv6 SID index limit in the `sid vpn per-vrf export` VTY command
2022-11-21 10:05:44 +02:00
Carmine Scarpitta
8265cbc769 doc: Update the SRv6 SID index limit in BGP doc
The `sid vpn per-vrf export` VTY command in bgpd has been extended to
support up to 1048575 SIDs.

This commit updates the documentation of the `sid vpn per-vrf export`
command.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-18 09:09:48 +01:00
Donatas Abraitis
f8d69be43f
Merge pull request #12081 from sworleys/EMM-upstream
Rework of Various Handling in EVPN for Extended Mac Mobility
2022-11-17 16:46:58 +02:00
Russ White
54b3d90a4b
Merge pull request #11992 from pguibert6WIND/pathd_debug
Pathd debug
2022-11-16 21:41:33 -05:00
Donatas Abraitis
4f770cf1d2 bgpd: Implement graceful-shutdown command per neighbor
We already have a global knob for graceful-shutdown, but it's handy having
per neighbor knob as well.

Especially when a single neighbor needs to be restarted/shutdown gracefuly.

We can do this route-maps, but this is a faster/cleaner way doing the same
for an operator.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-16 21:42:21 +02:00
Philippe Guibert
116f9b45ed pathd: add 'debug pathd policy' command
Add a new cli command to troubleshoort pathd daemon.
Some traces initially enabled are hidden behind this
cli command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-11-14 17:42:44 +01:00
Donatas Abraitis
84f784fafa
Merge pull request #12219 from cscarpitta/feature/srv6-usid-behavior-support
bgpd, zebra: Add support for SRv6 uSID Behaviors
2022-11-14 16:13:39 +02:00
Carmine Scarpitta
439d4c9b03 doc: Add documentation for behavior usid command
Add the documentation for the `behavior usid` command to zebra.

When the `behavior usid` command is set, a flag is added to the locator
to indicate that the locator is a uSID locator. When a locator is
specified as a uSID locator, the bgpd will install SRv6 behaviors with
the uSID in the dataplane and use the SRv6 uSID codepoints in the BGP
update message.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-08 22:44:24 +01:00
Donatas Abraitis
061f5d1cb4 lib: Add PCRE2 support
Some results:

```
====
PCRE
====
% ./a.out "^65001" "65001"
comparing: ^65001 / 65001

ret status: 0
[14:31] donatas-pc donatas /home/donatas
% ./a.out "^65001_" "65001"
comparing: ^65001_ / 65001

ret status: 0

=====
PCRE2
=====
% ./a.out "^65001" "65001"
comparing: ^65001 / 65001

ret status: 0
[14:30] donatas-pc donatas /home/donatas
% ./a.out "^65001_" "65001"
comparing: ^65001_ / 65001

ret status: 1
```

Seems that if using PCRE2, we need to escape outer `()` chars and `|`. Sounds
like a bug.
But this is only with some older PCRE2 versions. With >= 10.36, I wasn't able
to reproduce this, everything is fine and working as expected.

Adding _FRR_PCRE2_POSIX definition because pcre2posix.h does not have
include's guard.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-07 21:23:53 +02:00