summaryrefslogtreecommitdiff
path: root/babeld
AgeCommit message (Collapse)Author
2025-04-11Merge pull request #16735 from zmw12306/babel_nonzeroMBZDonald Sharp
babeld: Add MBZ and Reserved field checking
2025-04-10Merge pull request #18472 from zmw12306/Update-TLVJafar Al-Gharaibeh
babeld: Add input validation for update TLV.
2025-04-10Merge pull request #18548 from zmw12306/request_subtlv_typeJafar Al-Gharaibeh
babeld: fix incorrect type assignment in parse_request_subtlv
2025-04-09Merge pull request #17915 from mjstapp/compile_wshadowDavid Lamparter
2025-04-08babeld: clean up -Wshadow warningsMark Stapp
Clean up various "shadow" warnings in babeld. Signed-off-by: Mark Stapp <mjs@cisco.com>
2025-04-08Merge pull request #18583 from zmw12306/source_portJafar Al-Gharaibeh
babeld: check valid babel port
2025-04-08Merge pull request #18585 from zmw12306/babel-knownaeRuss White
babel: fix incorrect check in known_ae()
2025-04-08Merge pull request #18584 from zmw12306/babel_get_myidRuss White
babeld: Add a check to prevent all-ones case
2025-04-08Merge pull request #18582 from zmw12306/route_lostRuss White
babeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1
2025-04-08Merge pull request #18581 from zmw12306/request_forwardRuss White
babeld: Request forwarding does not prioritize feasible routes
2025-04-08Merge pull request #18547 from zmw12306/Hop-CountRuss White
babeld: Hop Count must not be 0.
2025-04-05babel: fix incorrect check in known_ae()zmw12306
The known_ae() function accepts AE values up to 4, but the RFC only defines AE values 0-3. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-04-05babeld: Add a check to prevent all-ones casezmw12306
A router-id MUST NOT consist of either all binary zeroes (0000000000000000 hexadecimal) or all binary ones (FFFFFFFFFFFFFFFF hexadecimal). Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-04-05babeld: check valid babel portzmw12306
Add checking for port == 6696. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-04-05babeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1zmw12306
When all feasible routes to a destination are lost, but unexpired unfeasible routes exist, the node MUST send a seqno request to prevent starvation. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-04-05babeld: Request forwarding does not prioritize feasible routeszmw12306
Modify route selection to check feasibility first, then fall back to non-feasible routes as per SHOULD requirement. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-04-01Merge pull request #18470 from zmw12306/NH_InitRuss White
babeld: Add next hop initialization
2025-03-31babeld: fix incorrect type assignment in parse_request_subtlvzmw12306
parse_request_subtlv accesses type using fixed offset instead of current position. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-31babeld: Hop Count must not be 0.zmw12306
According to RFC 8966: Hop Count The maximum number of times that this TLV may be forwarded, plus 1. This MUST NOT be 0. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-31babeld: Add input validation for update TLV.zmw12306
1. If the metric is infinite and AE is 0, Plen and Omitted MUST both be 0 2. Use INFINITY to replace 0xFFFF 3. Ignore unkown ae 4. If the metric field if 0xFFFF, a retraction happens So it is acceptable for no router_id when metric is 0xFFFF while ae is not 0. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-30*: Ensure prefix lists are freed on shutdown.Donald Sharp
Several daemons were not calling prefix_list_reset to clean up memory on shutdown. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2025-03-26Merge pull request #18448 from Shbinging/fix_babel_hello_intervalDonatas Abraitis
babeld: fix hello packets not sent with configured hello timer
2025-03-25Merge pull request #18474 from zmw12306/Hop-CountRuss White
babeld: Hop Count must not be 0.
2025-03-25Merge pull request #18471 from zmw12306/NH-TLVDonald Sharp
babeld: add check incorrect AE value for NH TLV.
2025-03-25babeld: fix hello packets not sent with configured hello timerShbinging
Same issue occurring as previously addressed in https://github.com/FRRouting/frr/pull/9092. The root cause is: "Sending a Hello message before restarting the hello timer to avoid session flaps in case of larger hello interval configurations." Signed-off-by: Shbinging <bingshui@smail.nju.edu.cn>
2025-03-24babeld: add check incorrect AE value for NH TLV.zmw12306
According to RFC 8966, for NH TLV, AE SHOULD be 1 (IPv4) or 3 (link-local IPv6), and MUST NOT be 0. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-24babeld: Hop Count must not be 0.zmw12306
According to RFC 8966: Hop Count The maximum number of times that this TLV may be forwarded, plus 1. This MUST NOT be 0. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-23babeld: Missing Validation for AE=0 and Plen!=0zmw12306
A Request TLV with AE set to 0 and Plen not set to 0 MUST be ignored. Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-23babeld: Add next hop initializationzmw12306
Initialize v4_nh/v6_nh from source address at the beginning of packet parsing Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-23babeld: babeld: Add MBZ and Reserved field checkingzmw12306
Signed-off-by: zmw12306 <zmw12306@gmail.com>
2025-03-18babled: set wired/wireless internal only when wired/wireless status changesShbinging
As stated in doc, interface's attributes such noninterfering/interfering are reset when the wired/wireless status of an interface is changed. If wired/wireless status is not changed, such as wired->wired, we should not reset internal attributes. Signed-off-by: Shbinging <bingshui@smail.nju.edu.cn>
2025-02-10babeld: Improve code clarity and maintainabilityY Bharath
Improve code clarity and maintainability Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2025-01-02babel: Clean babel related config on daemon stopYaroslav Kholod
When deactivating babel no router babel and later re-enabling it router babel the previous configuration is still in place. Steps to reproduce: Enable babel Configure babel Disable babel with "no router babel" Verify config Expected correct behavior: No config present Signed-off-by: Yaroslav Kholod <y.kholod@vyos.io>
2024-12-20babel: Clean babel config on babel daemon stopYaroslav Kholod
When deactivating babel no router babel and later re-enabling it router babel the previous configuration is still in place. Steps to reproduce: - Enable babel - Configure babel - Disable babel with "no router babel" - Verify config Expected correct behavior: No config present Signed-off-by: Yaroslav Kholod <y.kholod@vyos.io>
2024-09-06babeld: changes for code maintainabilitysri-mohan1
these changes are for improving the code maintainability and readability Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2024-08-22babeld: Do not remove route when replacingDonald Sharp
When sending down a babel route do not remove then add it back. Just send down the change. This change will not cause packets to be dropped now. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-22babeld: Send the route's metric down to zebra.Donald Sharp
Babel was thinking it was talking to the kernel for route installation instead of zebra. Pass down the metric instead. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-13babeld: Free up memory on shutdownDonald Sharp
a) call vector_delete on created vector on shutdown. b) Call babel_clean_routing_process on shutdown Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-07-10babel: Added null check after retrieving babel_ifpY Bharath
Asserting the further instructions when the babel interface pointer is NULL Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2024-02-20babeld: changes for code maintainabilitysri-mohan1
these changes are for improving the code maintainability and readability Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2024-02-14babeld: changes for code maintainabilitysri-mohan1
these changes are for improving the code maintainability and readability Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2024-02-01*: create a single registry of daemons' default port valuesMark Stapp
Create a single registry of default port values that daemons are using. Most of these are vty ports, but there are some others for features like ospfapi and zebra FPM. Signed-off-by: Mark Stapp <mjs@labn.net>
2024-01-27babeld: remove bogus config path printDavid Lamparter
This doesn't align with what the code actually loads, remove it. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27*: fix `frr_daemon_info` indentationDavid Lamparter
clang-format doesn't understand FRR_DAEMON_INFO is a long macro where laying out items semantically makes sense. (Also use only one `FRR_DAEMON_INFO(` in isisd so editors don't get confused with the mismatching `( ( )`. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27*: rename `frr_vtydir` to `frr_runstatedir`David Lamparter
Also remove frr_init_vtydir(), just initialize to default. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-22babeld: use correct autocompletion for distribute-list commandsIgor Ryzhov
Currently, we always use access-list autocompletion, even if configuring prefix-lists. We should differentiate. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-22babeld: pass distribute ctx to distribute-list functionsIgor Ryzhov
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-22lib: enable multiple instance support with distribute listsChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-09*: zebra.h should not have fcntl.hDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-22*: convert `struct interface->connected` to DLISTDavid Lamparter
Replace `struct list *` with `DLIST(if_connected, ...)`. NB: while converting this, I found multiple places using connected prefixes assuming they were IPv4 without checking: - vrrpd/vrrp.c: vrrp_socket() - zebra/irdp_interface.c: irdp_get_prefix(), irdp_if_start(), irdp_advert_off() (these fixes are really hard to split off into separate commits as that would require going back and reapplying the change but with the old list handling) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>