| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The code doesn't push more than one group (currently) so wouldn't hit the
bug yet, nice catch by coverity.
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\
| |
| | |
staticd: Add support for SRv6 Static SIDs
|
| |
| |
| |
| | |
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
|
| |
| |
| |
| |
| |
| |
| | |
This commit moves DEFAULT_SRV6_IFNAME from isis_srv6.h to srv6.h
because there are other daemons that might want to use it (e.g. staticd).
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
|
| |
| |
| |
| | |
Signed-off-by: Yuqing Zhao <galadriel.zyq@alibaba-inc.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous use of `lyd_new_path()` returns the first node created, rather
than the xpath target node. The code is lucky in the sense that it is
normally only creating a single node rather than a branch. Fix this to
use `lyd_new_path2()` which returns the target node to actually implement
the semantics expected by callers of `dnode_create()` (i.e., returning the
newly created target node).
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |
| |
| |
| | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |
| |
| |
| | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|/
|
|
|
|
|
|
| |
This is similar to notify and RPC parsers, but this is for normal datastore
data. This is initially used in handling datastore notifications being sent to
another backend client[s].
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\
| |
| | |
limit community list count
|
| |
| |
| |
| |
| |
| |
| | |
Add a mechanism in route-map to filter out route-map which have a list
of communities greater than the given number.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Current -n option is only for zebra and mgmtd. All other daemons receive
the VRF backend configuration from zebra upon connection to it. This
leads to a potential race condition - daemons need to know the backend
before they start reading their config, but they can be not connected to
zebra yet at this point. As the VRF backend cannot change during runtime,
let's introduce a new global -w option for setting netns backend, to
make sure that all daemons know their VRF backend immediately after
start.
The reason for introducing a new option instead of making -n global is
that ospfd already uses -n for another purposes.
Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vrf->ns_ctxt is only ever used in zebra, so move its initialization to
zebra's callback. Ideally this pointer shouldn't even be a part of
library's vrf struct, and moved to zebra-specific struct, but this is
the first step.
Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The backend type cannot be unknown. It is configured to VRF_LITE by
default in zebra anyway, so just init to VRF_LITE in the lib and remove
the UNKNOWN type.
Signed-off-by: Igor Ryzhov <idryzhov@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\ \
| | |
| | | |
operational-state (datastore) change notifications
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| | |
| | |
| | |
| | |
| | |
| | | |
- Additionally push the selectors down to the backends
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |/
| |
| |
| | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|/
|
|
|
|
|
|
|
| |
lua_pcall() returns LUA_ERRGCMM in 5.3 which is already deprecated.
The constant LUA_ERRGCMM was removed.
Errors in finalizers are never propagated; instead, they generate a warning.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
|
|\
| |
| | |
bgpd: fix crash in displaying json orf prefix-list
|
| |
| |
| |
| |
| |
| |
| |
| | |
bgpd crashes when there is several entries in the prefix-list. No
backtrace is provided because the issue was catched from a code review.
Fixes: 856ca177c4 ("Added json formating support to show-...-neighbors-... bgp commands.")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
|
| |
| |
| |
| |
| |
| |
| | |
0x<address>FX was displayed instead of the prefix.
Fixes: b219dda129 ("lib: Convert usage of strings to %pFX and %pRN")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
|
|/
|
|
|
|
| |
Remove interface dead code.
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
|
|\
| |
| | |
libs: remove deprecated 'clear thread' cli
|
| |
| |
| |
| |
| |
| | |
Remove a deprecated 'clear thread cpu' command.
Signed-off-by: Mark Stapp <mjs@cisco.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't over-allocate syscaps in zcaps2sys(): This is just a single struct
(pset_t) with a count and a pointer to an array of capabilities, not an
array. So only allocate a single pset_t, not num copies of it.
The allocation size of syscaps->caps then needs to be based on the number of
Linux capabilities (count), but that is already handled properly a few lines
below.
Note that this fix is mostly cosmetic and for correctness. There was no
potential for memory corruption, because num is guaranteed to be nonzero. So
at least the one required pset_t was always allocated (but potentially much
more).
Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
|
|\ \
| | |
| | | |
improve error handling of operational state walk callback
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\ \ \
| | | |
| | | | |
fix xpath query on keyless list with positional predicate
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
- i.e., `show /foos/foo[1]`
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\ \ \
| | | |
| | | | |
New YANG notify msg fmt
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- needed for supporting backend datastore notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
- needed for supporting backend datastore notifications
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\ \ \
| |_|/
|/| | |
Add new oper state get callback
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This allows eliminating the superfluous yang_data object (which
is getting created used to call lyd_new_term then deleted). Instead
just call lyd_new_term() in the callback directly.
Signed-off-by: Christian Hopps <chopps@labn.net>
|
|\ \
| |/
|/| |
zebra: Fix ip protocol route-map issue.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"ip/ipv6 protocol any route-map <route map>" cli is setting
wrong route type ( ZEBRA_ROUTE_MAX ), It should set route type
ZEBRA_ROUTE_ALL.
Ticket: #4101560
Signed-off-by: Sougata Barik <sougatab@nvidia.com>
|
|\ \
| | |
| | | |
bgpd, lib: Use frrstr_time() when using ctime_r()
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
newline is not expected to be printed in JSON outputs, e.g.:
```
"lastUpdate":{"epoch":1734490463,"string":"Wed Dec 18 04:54:23 2024\n"
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
|
|\ \ \
| | | |
| | | | |
lib: Fix to optimize the time taken while batching huge configs
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Issue: When the incoming config has say 30K entries of a prefix-lists,
current implementation is to schedule the configs to be batched and
only after batching the entire config, the processing of the configs
take place. As part of batching this config, we perform string
concatenation to save all the configs in the buffer which over time
results in taking longer time.
Ex: Imagine each line of config is 50 chars. With a delimiter of ‘- ‘ we end
up adding 52 chars to buffer for each command i.e. 52*30000 = 156K of chars.
Strlcat is an expensive operation and every time we strlcat, we have to
traverse at end of string to append new char.
Because of this, we end up adding extra 6-8 secs for accepting the config.
Fix: The idea here is to bring back something similar to the backoff
count implemented as part of 20e9a402 (lib: introduce configuration
back-off timer for YANG-modeled commands).
Essentially we keep a cap of 5000 per batch. So once 5000k config
commands are batched, we process them, clear the buffer, set the count
to 0 and then continue processing the rest of the config.
option1 file has 30K entries of prefix-list
Without Fix:
root@mlx-3700-20:mgmt:/var/log/raja/frr# time sudo vtysh -f option1
<SNIP>..............
Waiting for children to finish applying config...
[25191|staticd] done
[25189|watchfrr] done
[25178|ospfd] done
[25190|pbrd] done
[25181|bgpd] done
[25175|zebra] done
real 0m20.123s
user 0m9.384s
sys 0m2.403s
With Fix:
root@mlx-3700-20:mgmt:/var/log/raja/frr# time sudo vtysh -f option1
<SNIP>..............
Waiting for children to finish applying config...
[19887|staticd] done
[19885|watchfrr] done
[19886|pbrd] done
[19874|ospfd] done
[19877|bgpd] done
[19871|zebra] done
real 0m12.168s
user 0m7.511s
sys 0m1.981s
Issue: 3589101
Ticket# 3589101
Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix 2 darr (dynamic-array) bugs
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- WHen declaring macro scoped variables, can run into problem if the macro
variable passed in has the same name as the new variable introduced in the inner
scope. We don't get a warning and the uses will be wrong.
e.g.,
```
{
int __len = 10;
foo(__len); // => 10 and not 15 as we wanted.
}
```
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- ran into problem with darr macros and nested macros using the same name
variables as passed in variables in an out scope. Make these macro scoped
variables more unique as well.
Signed-off-by: Christian Hopps <chopps@labn.net>
|
| |/ /
| | |
| | |
| | | |
Signed-off-by: Christian Hopps <chopps@labn.net>
|