Commit Graph

1325 Commits

Author SHA1 Message Date
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