Commit Graph

19008 Commits

Author SHA1 Message Date
Sri Mohana Singamsetty
0298bb01bb
Merge pull request #6085 from donaldsharp/bgp_node_get_prefix
Bgp node get prefix
2020-03-26 19:07:36 -07:00
Donald Sharp
762d514fab
Merge pull request #6092 from ton31337/fix/error_message_for_aggregator
bgpd: Print readable error message when parsing AGGREGATOR attribute
2020-03-26 22:07:02 -04:00
Renato Westphal
4e9d40b8a1
Merge pull request #5925 from volta-networks/synchronous_client
zebra: synchronous client queues accumulate messages from zebra
2020-03-26 17:32:37 -03:00
Donald Sharp
b54892e0ea bgpd: Convert users of rn->p to use accessor function
Add new function `bgp_node_get_prefix()` and modify
the bgp code base to use it.

This is prep work for the struct bgp_dest rework.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-26 16:25:16 -04:00
Donald Sharp
5f040085ba lib, bgpd: Another round of struct const prefix cleanup
Cleanup another set of functions that need to respect the
const'ness of a prefix.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-26 16:22:00 -04:00
Donald Sharp
4ce217af91 lib: make oid_copy_addr respect my constness
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-26 16:22:00 -04:00
Donald Sharp
52a44d64b5 bgpd: Refactor vnc_import_bgp_redist_table
This function is heavily indented and hard to read
Make it easier to read.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-26 16:22:00 -04:00
Donatas Abraitis
87c8213108 bgpd: Show that prefix is malformed if aggregated by 0
Show if this malformed under `show [ip] bgp <prefix>`:
 ```
eva# sh ip bgp 103.79.124.0/22
BGP routing table entry for 103.79.124.0/22
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.201.136
  64539 15096 6939 7545 7545 136001, (aggregated by 0(malformed) 0.0.0.0)
    192.168.201.136 from 192.168.201.136 (192.168.201.136)
      Origin IGP, valid, external, best (First path received)
      Last update: Thu Mar 26 10:02:07 2020
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-03-26 16:06:34 +02:00
Donatas Abraitis
0f2a703d5e bgpd: Print readable error message when parsing AGGREGATOR attribute
Having a full feed this leads to unknown. You can't point which prefix or
aspath has this malforming behavior.

Printing just `[EC 33554434] AGGREGATOR attribute is BGP_AS_ZERO(0)` isn't
enough, you can't directly pin-point where is the problem.

Additionally print at least aspath here:
```
[EC 33554434] AGGREGATOR AS number is 0 for aspath: 65000 65031
```

Overall the full table has only 6 such malformed prefixes:
```
aspath: 64539 15096 6939 45430 45458
aspath: 64539 15096 6939 1299 3257 34984 34984 34984 34984 34984 51174
aspath: 64539 15096 6939 286 34984 16135 16135 {16135}
aspath: 64539 15096 6939 7545 7545 136001
aspath: 64539 15096 6939 6762 3269 20746
aspath: 64539 15096 6939 7018 3379
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-03-26 16:06:00 +02:00
Quentin Young
b37bbdbc81
Merge pull request #6091 from volta-networks/fix_isis_show_hello
isisd: fix more mismatches between vty command and show config
2020-03-25 13:05:34 -04:00
Emanuele Di Pascale
249312abb9 isisd: fix hello cmds vtysh output
once again, for both hello-multiplier and hello-interval
the order in which the number and level were shown in the
cli_show methods was inverted compared to the vtysh command,
which created issues with frr-reload.py.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2020-03-25 16:35:29 +01:00
Donald Sharp
8fcca5024f
Merge pull request #6079 from sarav511/regstop_exp
pimd: Reg Suppression expiry has to account for couldreg->false while in RegPrune
2020-03-25 06:32:42 -04:00
Donald Sharp
42984e1bd4
Merge pull request #6087 from opensourcerouting/log-kill-tabs
*: remove tabs and linefeeds from log messages
2020-03-25 06:30:38 -04:00
Russ White
9d7bc42a49
Merge pull request #6081 from dslicenc/import-vrf-routemap
bgpd: clean up import vrf route-map command
2020-03-24 15:57:28 -04:00
David Lamparter
46171e257c lib: rewrite zlog_hexdump()
The old version was creating a multi-line log message, which we can't
properly handle right now.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-03-24 19:43:18 +01:00
David Lamparter
63efca0e95 *: remove line breaks from log messages
Line break at the end of the message is implicit for zlog_* and flog_*,
don't put it in the string.  Mid-message line breaks are currently
unsupported.  (LF is "end of message" in syslog.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-03-24 19:43:18 +01:00
Quentin Young
d5b98b5686
Merge pull request #5713 from opensourcerouting/logpump
sharpd: add "logpump" to bulk test logging
2020-03-24 14:06:06 -04:00
David Lamparter
d6951e5ef9 *: remove tabs from log messages
Some logging systems are, er, "allergic" to tabs in log messages.
(RFC5424: "The syslog application SHOULD avoid octet values below 32")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-03-24 18:47:12 +01:00
Quentin Young
4ad05982dc
Merge pull request #6080 from sarav511/buf_inc
pimd: increase buffer size for prefix str while printing bsrp-info
2020-03-24 12:29:47 -04:00
Santosh P K
aa50bf0618
Merge pull request #6035 from qlyoung/fix-nexthop-label-nullity-before-free
lib: remove null check before free nh_labels
2020-03-24 21:29:06 +05:30
David Lamparter
aef4a13f4f sharpd: add "logpump" to bulk test logging
This just generates log messages in bulk for testing logging backend
performance.  It's in sharpd so the full "context" of being in a daemon
is available (e.g. different logging configs, parallel load in the main
thread.)

Signed-off-by: David Lamparter <equinox@diac24.net>
2020-03-24 15:58:36 +01:00
Russ White
3dc9c1e49f
Merge pull request #6068 from donaldsharp/agg_to_use_rn_lookup
Agg to use rn lookup
2020-03-24 10:49:36 -04:00
Russ White
0a8138dc74
Merge pull request #6050 from sworleys/PBR-No-Fail-Same-VRF
pbrd: properly handle duplicate set vrf XX configs
2020-03-24 10:28:41 -04:00
Russ White
e89bb41d80
Merge pull request #6047 from sarav511/hold0
pimd: Pim hello should be sent with 0 hold time on address change onold src ip
2020-03-24 10:19:17 -04:00
Russ White
bb1cceed4a
Merge pull request #6024 from patrasar/mroute_reshape
pimd: re-shaping show ip mroute outout
2020-03-24 10:16:43 -04:00
Russ White
68d30fde96
Merge pull request #6015 from sarav511/bsmfwd
pimd: Do not forward BSM to interfaces that has no pim neighbors
2020-03-24 10:11:29 -04:00
Russ White
a33ec5aeb5
Merge pull request #6010 from sarav511/uni_jn_ig
pimd: Ignore PIM Join/Prune, Assert and Hello without all-pim-routers address as dest IP
2020-03-24 10:08:29 -04:00
Don Slice
ae6a6fb4e5 bgpd: clean up import vrf route-map command
Problem seen that if "import vrf route-map RMAP" was entered
without any vrfs being imported, the configuration was displayed
as "route-map vpn import RMAP". Additionally, if "import vrf
route-map" was entered without specifying a route-map name,
the command was accepted and the word "route-map" would be
treated as a vrf name.  This fix resolves both of those issues
and also allows deleting the "import vrf route-map" line without
providing the route-map name.

Ticket: CM-28821
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2020-03-24 12:54:10 +00:00
Donald Sharp
26a3ffd60e bgpd, lib, ripngd: Add agg_node_get_prefix
Modify code to use lookup function agg_node_get_prefix()
as the abstraction layer.  When we rework bgp_node to
bgp_dest this will allow us to greatly limit the amount
of work needed to do that.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-24 07:51:41 -04:00
Donald Sharp
5a1ae2c237 bgpd: Rework code to use const struct prefix
Future work needs the ability to specify a
const struct prefix value.  Iterate into
bgp a bit to get this started.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-24 07:51:41 -04:00
Donald Sharp
1a4189d4a1 bgpd, isisd, lib: Make key values const for skiplist
Make some key values const for the skiplist code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-24 07:33:13 -04:00
Donald Sharp
cb9f254c01 bgpd: Make bgp_debug_bestpath take a struct bgp_node
Defer the grabbing of the prefix for as long as is possible.
This is a long term rework of how we access the `struct bgp_node`
to only use accessor functions.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-24 07:33:13 -04:00
Donald Sharp
5b299acd1f
Merge pull request #6072 from sarav511/bsrelect
pimd: bsr election elects wrong bsr
2020-03-24 06:29:04 -04:00
saravanank
cf575d0975 pimd: Reg Suppression expiry has to account for couldreg->false while in prune
Problem: This happened in once in a while during testing the scenario multiple
times. When regstop timer expire and at that point if rpf interface doesn't
exist, the register state for the upstream gets struck in reg-prune state indefinitely.
This will not recover even when rpf comes back and traffic resumed because
register state is struck on prune.

RCA: Reg suppression expiry is keeping reg state unchanged when iif is absent.

Fix: When iif is absent during reg suppression expiry, treat it as couldreg
becoming false and move it NO_INFO state.

Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-03-24 02:31:04 -07:00
saravanank
93a5bc8022 pimd: increase buffer size for prefix str while printing bsrp-info
Problem: output is cut short when prefix string all octets are 3 digit.
RCA: Buffer was allocated only to hold ip addr str.

Fix: Added 3 bytes more to hold prefix length and a /.
Modified buffer in 'show ip pim bsrp-info' and 'show ip pim bsm database'

Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-03-24 00:24:56 -07:00
Donald Sharp
910607c3d1
Merge pull request #6026 from sarav511/nbrcln
pimd: pimd crashes during neighbor clean up
2020-03-23 19:34:15 -04:00
Donald Sharp
b51f20106c
Merge pull request #6018 from sarav511/rp_nomatch
pimd: (*, G) Prune should be processed even if the RP in packet is not RP(G)
2020-03-23 19:28:23 -04:00
Donald Sharp
228d2dc08c
Merge pull request #6074 from mjstapp/fix_staticd_help_text
staticd: fix vty help text
2020-03-23 19:14:55 -04:00
Mark Stapp
92ae10e660 staticd: fix vty help text
Missing newline in some vty help text, resulted in garbage
in help output.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-03-23 15:40:16 -04:00
Sri Mohana Singamsetty
865a8f8611
Merge pull request #6073 from donaldsharp/is_default
More `const struct prefix` work
2020-03-23 10:54:33 -07:00
Donald Sharp
a01f317b0f
Merge pull request #6008 from sarav511/max_vif
pimd: Do not allow to configure multicast on more than MAXVIF interfaces
2020-03-23 11:28:45 -04:00
Donald Sharp
6ced257f01
Merge pull request #6004 from sarav511/mc_fixes
pimd: (S,G) Route doesn't inherit olist from parent while creation in nocache path
2020-03-23 11:17:28 -04:00
Renato Westphal
1a3ff5236c
Merge pull request #5851 from volta-networks/feat_ldp_oc_review
ldpd: adding support for LDP ordered label distribution control
2020-03-23 10:55:20 -03:00
Karen Schoener
17da84a49d zebra: Synchronous client queues accumulate messages from zebra.
Zebra is currently sending messages on interface add/delete/update,
VRF add/delete, and interface address change - regardless of whether
its clients had requested them.  This is problematic for lde and isis,
which only listens to label chunk messages, and only when it is
waiting for one (synchronous client). The effect is the that messages
accumulate on the lde synchronous message queue.

With this change:
  - Zebra does not send unsolicited messages to synchronous clients.
  - Synchronous clients send a ZEBRA_HELLO to zebra.
    The ZEBRA_HELLO contains a new boolean field: sychronous.
  - LDP and PIM have been updated to send a ZEBRA_HELLO for their
    synchronous clients.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2020-03-23 09:17:17 -04:00
Donald Sharp
1be1693edf bgpd, lib: More constification of various code
More second order effects of cleaning up rn usage
in bgp.  Sprinkle the fairy const's all over the place.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-23 08:41:17 -04:00
saravanank
23a2f90a00 pimd: Add check for pim join, hello and assert to drop pkts without all-pim-routers dest.
This is as per RFC. This is identified when conformance suite catched join.

RCA:
Packets were processed without checking allowed dest IP for that packet.

Fix:
Added check for dest IP
Converted this check to a function

Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-03-23 05:35:55 -07:00
Donald Sharp
b8685f9bea bgpd: Add some const struct prefix for a couple more functions
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-03-23 08:10:55 -04:00
saravanank
e34c461936 pimd: bsr election elects wrong bsr
RCA: preferred bsr routine, compare address in network byte order

Fix: changed to host format before comparision.

Testing:
Verified between 1.1.2.7 and 10.2.1.1, 10.2.1.1 is chosen as bsr

Initially:
R11# sh ip pim bsr
PIMv2 Bootstrap information
Current preferred BSR address: 1.1.2.7
Priority        Fragment-Tag       State           UpTime
  0               2862            ACCEPT_PREFERRED    00:00:30
Last BSM seen: 00:00:30

After next bsr started:
R11# sh ip pim bsr
PIMv2 Bootstrap information
Current preferred BSR address: 10.2.1.1
Priority        Fragment-Tag       State           UpTime
  0               3578            ACCEPT_PREFERRED    00:00:01
Last BSM seen: 00:00:01
R11# sh ip pim bsr
PIMv2 Bootstrap information
Current preferred BSR address: 10.2.1.1
Priority        Fragment-Tag       State           UpTime
  0               3578            ACCEPT_PREFERRED    00:00:04
Last BSM seen: 00:00:04

Signed-off-by: Saravanan K <saravanank@vmware.com>
2020-03-22 19:46:12 -07:00
Sri Mohana Singamsetty
544955aa78
Merge pull request #6070 from donaldsharp/bgp_const_struct_work
bgpd: More `const struct prefix` work
2020-03-22 17:32:31 -07:00
Sri Mohana Singamsetty
8034b3c837
Merge pull request #6051 from ton31337/fix/bool_stuff_bgp_clist
bgpd: Convert some community related functions to bool type
2020-03-22 17:32:09 -07:00