Commit Graph

24579 Commits

Author SHA1 Message Date
Donald Sharp
1d88e63a4e isisd: using argv as a string name is categorically wrong
We are passing around the system id using the variable name
of `argv`.  Let's name the variable correctly and pass it around
correctly named.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-06-22 13:03:00 -04:00
Donald Sharp
730649da0e isisd: already checked for NULL
in lsp_for_arg we have already checked for NULL and returned
if argv is null.  We do not need to check for it again.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-06-22 12:36:16 -04:00
Russ White
590303a029
Merge pull request #8878 from idryzhov/fix-ospf6-neighbor-detail
ospf6d: fix "show ipv6 ospf6 neighbor" command
2021-06-22 11:27:17 -04:00
Russ White
b79f1e068e
Merge pull request #8725 from pjdruddy/ospfv3_fair_socket
OSPFv3 socket rework
2021-06-22 10:58:33 -04:00
Russ White
7fd86e2811
Merge pull request #8820 from anlancs/master-vtysh-hostname
doc: add a note of hostname/domainname for vtysh
2021-06-22 10:06:05 -04:00
Russ White
c4b5d96519
Merge pull request #8869 from leonshaw/master
bgpd: Force process networks on VRF creation
2021-06-22 09:57:06 -04:00
Russ White
6d824d6940
Merge pull request #8891 from idryzhov/no-vrf-interface
lib: remove vrf-interface config when removing the VRF
2021-06-22 09:55:11 -04:00
Russ White
d550a64cd0
Merge pull request #8557 from rgirada/ospf_type5_fix
ospfd: External lsa handling in opaque capabilities enable/disable
2021-06-22 09:45:27 -04:00
Russ White
1332a177b2
Merge pull request #8334 from ranjanyash54/last_dbdesc
ospf6d: Release last dbdesc packet after router dead interval
2021-06-22 09:38:21 -04:00
Mark Stapp
a78dde0dcd
Merge pull request #8867 from wesleycoakley/pbr-table-range-single-line
tools: make frr-reload recognize `pbr table range` lines as single-line contexts
2021-06-22 09:12:02 -04:00
Donald Sharp
64fcf85d38
Merge pull request #8892 from idryzhov/fabric-no-instance
fabricd: fix running config
2021-06-22 08:09:05 -04:00
Igor Ryzhov
ee3e6d7ff3 ospf6d: fix "show ipv6 ospf6 neighbor" command
Simplify the logic and fix processing of "detail" and "drchoice"
arguments.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-21 18:42:49 +03:00
Igor Ryzhov
b0f8f4d23e fabricd: fix running config
Daemons should not output warnings into the running config.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-21 18:12:45 +03:00
Igor Ryzhov
f5eef2d5a8 lib: remove vrf-interface config when removing the VRF
If we have the following configuration:
```
vrf red
 smth
 exit-vrf
!
interface red vrf red
 smth
```
And we delete the VRF using "no vrf red" command, we end up with:
```
interface red
 smth
```
Interface config is preserved but moved to the default VRF.

This is not an expected behavior. We should remove the interface config
when the VRF is deleted.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-21 18:04:46 +03:00
rgirada
a4d9009d47 ospfd: External lsa handling in opaque capabilities enable/disable
Description:
	When opaque capability disabled/enabled , all the self-originated lsa will be
	flushed and it will make the neighbours to renegotiate.
	But here, external lsas are not being re-originated after negotiation
Fix:
	Refresh/re-originate external lsas(Type-5 and Type-7) explicitly after
	re-negotiation.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2021-06-21 01:51:00 -07:00
Yash Ranjan
bc09f3e6bb ospf6d: Release last dbdesc packet after router dead interval
During the database description exchange process, the slave
releases the last dbdesc packet after router_dead_interval.
This was not implemented in the code.
I have written the function ospf6_neighbor_last_dbdesc_release,
which releases the last dbdesc packet after router_dead_interval.
This change was required as per the conformance test 13.11:

In state Full reception of a Database Description packet from
the master after this interval (RouterDeadInterval) will
generate a SeqNumberMismatch neighbor event.

Associated Parameters
  ICMPv6 Packet Listen Time
  ICMPv6 Packet Tolerance Factor
  ICMPv6 Packet Tolerance Time
  OSPFV3 DUT Interface Transmit Delay
  OSPF Reset Adjacencies Timeout
Test Actions
1.
2. 3.
ANVL: Establish full adjacency with DUT for neighbor Rtr-0-A on DIface-0, with DUT as slave.
ANVL: Wait (for <RouterDeadInterval> seconds).
ANVL: Send <OSPF-DD> packet from neighbor Rtr-0-A to DIface-0 con- taining:
• •
I-bit field not set M-bit field not set
MS-bit field set
DD sequence number same as the one last sent by ANVL.

. ANVL: Listen (for upto 2 * <RxmtInterval> seconds) on DIface-0.
5. DUT: Trigger the event SeqNumberMismatch and set the neighbor state for neighbor Rtr-0-A to ExStart.
6. DUT: Send <OSPF-DD> packet.
7. ANVL: Verify that the received <OSPF-DD> packet contains:
• I-bit field set
• M-bit field set
• MS-bit field set.

Test Reference
• RFC 5340, s4.2.1.2 p19 Sending Database Description Packets
  RFC 2328, s10.8 p104 Sending Database Description Packets.

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
2021-06-19 11:17:24 -07:00
Donald Sharp
cd551a0fd5
Merge pull request #8841 from volta-networks/fix_ospf6_bad_seqnum
ospf6: Drop LSA with bad seqnumber
2021-06-19 12:21:26 -04:00
Donald Sharp
457d4ee329
Merge pull request #8868 from ranjanyash54/redistribute_fix
ospf6d: redistribute command minor fixes
2021-06-19 12:20:04 -04:00
Renato Westphal
2f0884023a
Merge pull request #8749 from pjdruddy/bitfield_mtype
lib: add an MTYPE for bitfields
2021-06-19 12:16:48 -03:00
Renato Westphal
c03d8bd1cc
Merge pull request #8822 from dslicenc/frr-reload-mac-acl
tools: add mac access-list context to frr-reload.py
2021-06-19 12:16:25 -03:00
Renato Westphal
1e810976e2
Merge pull request #8864 from idryzhov/fix-vtysh-vrf-change
lib: fix interface configuration after vrf change
2021-06-19 12:15:40 -03:00
David Lamparter
ca4849b374
Merge pull request #8876 from idryzhov/remove-pure
lib: remove pure attribute from functions that modify memory
2021-06-19 14:32:43 +02:00
Xiao Liang
47fc62610c bgpd: Force process networks on VRF creation
Force the processing of existing network configurations when VRF is
created, otherwise will be skipped in bgp_static_update().

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2021-06-19 15:32:17 +08:00
Mark Stapp
7c215da68a
Merge pull request #8829 from donaldsharp/last_command
zebra: We already store the last command as part of zserv_write
2021-06-18 17:38:44 -04:00
Igor Ryzhov
4f08c715db lib: remove pure attribute from functions that modify memory
Almost all functions currently marked with pure attribute acquire a
route_node lock. By marking them pure we allow compiler to optimize the
code and not call them when it already knows the return value. This is
completely incorrect.

Only two of eleven functions can be marked as pure. And they still won't
be optimized because they are never called from the same function twice.
Let's remove the ext_pure macro completely to reduce the chance of
repeating this mistake in the future.

Fixes #8866, #8809, #8595, #6992.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-18 19:54:40 +03:00
lynne
c5467a12ea ospf6: Drop LSA with bad seqnumber
In RFC 2328 seqnumber 0x80000000 is reserved and not used.   If an LSA
is received with seqnumber the LSA is now dropped and a debug error log
is printed.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-06-18 11:48:18 -04:00
Don Slice
1443e23148 tools: add mac access-list context to frr-reload.py
Problem reported that frr-reload.py didn't handle the mac access-list
command correctly, causing reloads to fail.  This fix adds the
support for the command as a single line context.

Signed-off-by: Don Slice <dslice@nvidia.com>
2021-06-18 08:09:02 -07:00
Igor Ryzhov
80fb1cf446 tests: use correct metric type and value for OSPFv3 redistributed routes
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-18 16:05:01 +03:00
Donald Sharp
d7193080af
Merge pull request #8478 from mjstapp/fix_nb_grpc_shutdown
lib: stop grpc pthread at shutdown
2021-06-18 08:52:44 -04:00
Donald Sharp
3caaa17764 zebra: We already store the last command as part of zserv_write
when sending nexthop information.  We do not need to reset the
last_write_cmd since that is taken care of in the send routine.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-06-18 08:37:52 -04:00
Mark Stapp
95209a7234
Merge pull request #8861 from wesleycoakley/docker-init-rework
docker: use tini as entrypoint unilaterally
2021-06-18 08:33:03 -04:00
Donald Sharp
bdd3d216f9
Merge pull request #8828 from idryzhov/bgp-routemap-update
bgpd: fix routemap update with disabled delay timer
2021-06-18 08:25:50 -04:00
Donald Sharp
21b0c655e1
Merge pull request #8843 from idryzhov/isis-dyn-hostname-cache
isisd: per-instance dynamic hostname cache
2021-06-18 08:20:25 -04:00
Donald Sharp
a61bbb35a5
Merge pull request #8839 from volta-networks/fix_ospf6_flags_for_error_logs
ospf6d: move error logs out from behind debug flags
2021-06-18 08:18:25 -04:00
Donald Sharp
631f59c40e
Merge pull request #8846 from ton31337/fix/some_code_cleanups
bgpd: A couple of cleanups
2021-06-18 08:12:01 -04:00
Donald Sharp
6e17b9cd7d
Merge pull request #8865 from idryzhov/isis-fixes
a couple of isis fixes
2021-06-18 08:06:01 -04:00
Yash Ranjan
f84504e686 ospf6d: Set metric from default values when route-map metric not present
For redistribute commands if route map is set, then route takes it's metric
values from the route map. But in the case that routemap is set but the
metric for the route map is not, then the route metric is set to type-1.

Check if the metric is set for the routemap. If not then set it as per
redistributed default values (type 2)

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
2021-06-18 04:59:04 -07:00
Yash Ranjan
a5bc334beb ospf6d: Change the default metric parameter for redistribute
The default values will be set at the time of ospf6_redist_add
similar to ospfv2. Hence the default values will change as well.
Default metric type = E2
Default metic value = 20

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
2021-06-18 04:59:04 -07:00
Pat Ruddy
d01673b4cd tests: Modify topotests to include write-multiplier config
Modify both the default and vrf ospf6 topologies to include a test
where write-multiplier is configured to a non-default value and
the ospf6 neighbors are reset then checked.
Run black on both test files.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
44db98df2a doc: add OSPF[6] write-multiplier to docs
Add documentation for write-muliplier to both OSPF and OSPF6 docs

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
78156066b9 ospf6d: add write-multiplier configuration
allow amount of work done by read and write threads in a single
invocation to be tuned to between 1 and 100 packets (default 20)

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
bb382e24f1 ospf6d: add warning log for late hello packets
On transmit and receive calculate the time since the last hello was seen
and log a warning if it is late by more than the hello period.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
432b7daf3d ospf6d: add lsupdate messages to tx fifo
queue outgoing lsupdate messages to the interface tx FIFO and schedule
the ospf_write task to deal with them.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
dd784cf9fa ospf6d: add lsack messages to tx fifo
queue outgoing lsack messages to the interface tx FIFO and schedule
the ospf_write task to deal with them.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
571eed235d ospf6d: add lsreq messages to tx fifo
queue outgoing lsreq messages to the interface tx FIFO and schedule
the ospf_write task to deal with them.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
d6a39b53f5 ospf6d: add dbdesc messages to tx FIFO
enqueue outgoing dbdesc messages to the end of the tx FIFO and
schedule the ospf6_write task to deal with them.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
3d9680313e ospf6d: add hello messages to tx fifo
queue outgoing hello messages to the interface tx FIFO and schedule
the ospf_write task to deal with them.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
531f925b4d ospf6d: add packet apis
Add APIs to create, queue and dequeue OSPFv3 packets

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
4f7bf1ab05 ospf6d: add tx fifo infrastructure
Add per interface fifo and per instance write list as a precursor
to implementing fairer sharing of the ospf6 oscket resources.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Pat Ruddy
aa6a96ba78 ospf6d: read ospf6 socket until failure
To ensure we read all the datagrams availabe from a socket when the
read task is scheduled, make the read helper return and error or
continue enum and loop unitl an error is received.
This requires the read from the socket to be non blocking

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00