Commit Graph
3159 Commits
Author SHA1 Message Date
Joachim WibergandGitHub 1ca7acda14 Merge pull request #943 from kernelkit/update-doc
Update Processes Documentation

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-17 18:30:25 +01:00
Ahmed Karic 8f30f88967 doc: Update developers-guide
- communicate regarding YANG
- add StatD with focus on Yanger
- add test dev procedures

[ci skip]

Resolves #934
2025-02-17 14:31:30 +01:00
Ahmed KaricandGitHub 8eaaaa9d38 Merge pull request #933 from kernelkit/doc-update-yang2ethtool-mapping
Update documentation for YANG to Ethtool counter mappings
2025-02-17 12:47:45 +01:00
Mattias WalströmandGitHub 4e0ad1df1b Merge pull request #944 from kernelkit/coverity-fixes
Coverity fixes
2025-02-16 12:36:56 +01:00
Joachim WibergandGitHub dc3b78e678 Merge pull request #945 from kernelkit/repeat-in-9pm 2025-02-16 11:33:46 +01:00
Tobias Waldekranz 4d7dde5366 test: bridge_stp_basic: Skip on multi-chip mv88e6xxx systems
Until we fix kernelkit/linux#2, tag the affected nodes as providing
"broken-stp", and skip this test on those rigs.
2025-02-16 10:55:03 +01:00
Tobias Waldekranz 3c0679991d confd: bridge: Refactor init_snippets() to avoid unreachable code
Fix coverity CID 464653
2025-02-16 10:55:03 +01:00
Tobias Waldekranz fe741a92f3 confd: Explicitly return OK when registration is successful
Fix coverity CID 464654
2025-02-16 10:55:03 +01:00
Tobias Waldekranz f6879e24cc bin: Fix unchecked return codes
Fix coverity CID 425560
2025-02-16 10:55:03 +01:00
Tobias Waldekranz 7e252ba941 confd: Fix unchecked return codes
Fix coverity CIDS:
- 464651
- 464652
- 464655
- 507413
- 507414
2025-02-16 10:55:03 +01:00
Tobias Waldekranz 46d5e750d7 confd: Simplify GRE and VXLAN iface setup
CID 507415 from coverity was the origin for this change. As it turns
out, the unreachable MAC address generation for VXLANs was hidden by
the generic setup (netdag_gen_link_addr()) saving the day. That is
likely something we want to phase out though, so the VXLAN code should
stand on its own.

Align the GRE code while we're here, because why not? :)
2025-02-16 10:51:27 +01:00
Joachim Wiberg 5988249f84 test: 9pm: bump for new --repeat option
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-16 10:29:44 +01:00
Joachim WibergandGitHub 7aee2600ba Merge pull request #942 from kernelkit/fix
Bump Finit to fix flaky DHCP server subnets test

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-15 08:14:49 +01:00
Joachim Wiberg 6f99a9c2dc package/finit: bump to v4.9
Primarily fixes issue with DHCP server multiple subnets test, which
triggers an ordering issue between reconfiguration of dnsmasq and the
`initctl reload` command.

For the full ChangeLog, please see:

   https://github.com/troglobit/finit/releases/tag/4.9

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-15 07:21:01 +01:00
Tobias WaldekranzandGitHub eee1ce32fa Merge pull request #940 from kernelkit/remove-etherlike
Remove etherlike
2025-02-14 21:28:46 +01:00
Joachim Wiberg d9f2f2c8f9 confd: refactor core_post_hook()
- Reduce complexity
 - Change type, simplify
 - Allow errors from initctl

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-14 13:50:47 +01:00
Mattias Walström 31d0f79a10 Migrate configuration for etherlike
Migrate infix-if-type:etherlike in configuration to infix-if-type:ethernet
2025-02-14 09:52:37 +01:00
Mattias Walström b290e44318 Remove interface type Etherlike
Instead check if the interface support autonegotion
before setting it to an interface.

This fix #877 and fix #584
2025-02-13 20:27:01 +01:00
Mattias Walström 2d806de2cd yanger: Refactor how ethtool is read from interfaces
Upgrade ethtool to get json support for main command:

ethtool --json eth1
2025-02-13 20:27:00 +01:00
Tobias WaldekranzandGitHub c5db34b491 Merge pull request #873 from kernelkit/lag
Add support for static & lacp link aggragetes
2025-02-13 09:23:44 +01:00
Tobias Waldekranz 3d816d2525 linux: Import mv88e6xxx standalone LAG fix 2025-02-12 23:22:11 +01:00
Tobias Waldekranz fb394db981 test: lag_*: Ensure that links making up a LAG are compatible
Do not allow the topology matcher to setup a LAG where one link is
running at 10G while the other one runs at 1G, since the bond will
never use the 1G port as long as there the 10G link is up.
2025-02-12 23:22:10 +01:00
Tobias Waldekranz da39855cec test: infamy: Allow tests to refine the topology matching process
To run LAG tests on hardware, we have to make sure that the chosen
links are running at the same speed.  We do not want to require a
specific link speed from the logical topology, as the real requirement
is merely that the two (or however many) links are of the _same_
speed, not any _particular_ speed.

Rather than having to complicate the topology matcher, let it take
care of the common pattern of matching requirements to provided
features, then let tests pass custom node/edge matchers for the
complicated cases.
2025-02-12 23:22:09 +01:00
Joachim WibergandTobias Waldekranz a6b79857db doc: update ChangeLog, static+lacp link aggregation
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz f1271f28b9 doc: new section, Link Aggregation (updated images)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz f62900699a doc: add logo and update ingress
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz cf16efe499 test: new test, verify degraded link aggregate members in LACP mode
Verify connectivity from host to the second DUT via the first, over a
link aggregate.  Both aggregate member links are connected to a TPMR
link breaker to hide link down from the DUTs.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 4260d24143 test: new test, verify basic lag setup
Verify connectivity from host to the second DUT via the first, over a
link aggregate.  The lag starts in static mode and then changes to an
LACP aggregate.  This verifies not just basic aggregate functionality,
but also changing mode, which is quite tricky to get right.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 3ef1da1096 test: minor cleanup using new APIs
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz a90a39e8d8 test: infamy: allow easy debugging of differences in config data
Unclear if the libyang merge operation actually does it's job of merging
all the data properly in the restconf backend.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz dc5c7732d7 test: infamy: return None if port doesn't exist
Follow-up to e4535aa, allowing tests to be even simpler.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 5bf9200880 test: infamy: drop debug message breaking tap output
When first starting up the YANG models are downloaded.  Initially all
were printed on the test console, so this was later changed to become
a sort of progress output.  However, that broke tap output, causing a
missing leading '#' for the final "YANG models downloaded." message.

Thist patch drops the output entirely from the netconf transport, it
was never added to the restconf transport.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz f9b155b49f test: infamy: use decorator to reduce boilerplate for test args
Example use:

    @infamy.test_argument("--mode", help="one of 'static' or 'lacp'")
    class TestArgs(infamy.ArgumentParser):
        pass

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 9782ac9afa test: update virt topologies, add lag
This commit adds two SVGs for previewing the virtual test topologies.

quad: fix a lot of copy-paste mistakes, rename nodes and ports to their
      correct names.  Replace shell comments with C++ style comments,
      not all tools, e.g., dotty, support shell comments.  The neato
      absolute positioning has also been fixed to make it possible to
      see all the edges, to facilitate this the used ports have been
      swapped around a abit.  Colors are used according to the schema
      agreed on for tests.  Finally, a second link for lag tests have
      been added between dut2 and dut3.

dual: coloring similar to quad, update to new edge attribute matcher.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 773683bfd5 test: spec: catch and format dot file errors
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 3dbb1759eb klish-plugin-infix: need CAP_NET_ADMIN for some data
When reading lag status, like LACP actor system prio, port key,
etc., we need CAP_NET_ADMIN.  See net/bonding/bond_netlink.c

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz d7895d5c9c confd: handle dup calls to dagger_add_dep()
Some callbacks may run twice, e.g., lag_gen_ports().  Check if the link
already exists, and is the same, then we can exit silently.  However, in
case the link exists and does *not* point to the same target, we log an
error with current target for the post mortem.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 78499757b0 confd,statd: add support for link aggregates
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz ec2e161649 confd: add link aggregate model, lacp and static
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 18d8c439bd confd: drop unused yang import
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 1ca11f1fe7 statd: yanger: ignore 'podman' errors when built without containers
- Avoid unnecessary error messages in syslog when build w/o containers
 - Simplify log messages slightly

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz b70d0015a6 confd: silence any error from dagger 'ls *.tar.gz'
Do not log error if no tarballs exist.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 6a417f2f23 package/confd: drop unnecessary conditional
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz f212f0cc16 board/common: ensure virtio ports have an initial speed/duplex
The speed/duplex of a virtio interface is not eenforced in any way.  The
driver initializes them to unknown/unkown:

https://github.com/torvalds/linux/blob/dccbe2047a5b0859de24bf463dae9eeea8e01c1e/drivers/net/virtio_net.c#L5375-L5381

It is however possible to set them since there are kernel subsystems
that rely on them, e.g., miimon in the bond driver, which in turn is
required for use with the 802.3ad (lacp) mode.

If we do not initialize speed/duplex the miimon will complain in the log
on virtual test systems every second:

Dec 13 22:34:08 laggy kernel: lag0: (slave e1): failed to get link speed/duplex

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 01d07b4942 utils: rename sysrepo-load-modules.sh -> srload
Simplify name, follow new srop tool naming convention.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 039cb5db74 utils: fix linter warnings, simplify, and improve log messages on update
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Joachim WibergandTobias Waldekranz 65bce0378e .github: install libite from git
Latest libite-dev in Ubuntu does not have the latest libite features
needed by confd et al.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-02-12 23:21:08 +01:00
Ahmed Karic 91cef6d57b doc: Provide remaining mappings for eth-counters
[skip ci]

Fixes #770
2025-02-12 13:53:09 +01:00
Ahmed KaricandGitHub f3da31b18c Merge pull request #931 from kernelkit/verify-lldp
Verify LLDP administrative states
2025-02-12 12:41:54 +01:00
Ahmed Karic af1f173497 test: Verify LLDP admin status 2025-02-12 10:41:46 +01:00