Commit Graph
2940 Commits
Author SHA1 Message Date
Tobias Waldekranz bfeeade43b confd: bridge: Add STP/RSTP support 2025-01-08 10:14:46 +01:00
Tobias Waldekranz b425edffce libsrx: Add lyx versions of lyd_find_xpath
- Helper to get a set of nodes, using a formatted path
- Helper to get a single node, using a formatted path
2025-01-08 09:57:55 +01:00
Tobias Waldekranz f041d009b5 defconfig: all: Build mstpd 2025-01-08 09:57:55 +01:00
Tobias Waldekranz 26d06bd13b skeleton: mstpd: Let /sbin/bridge-stp add/remove bridges 2025-01-08 09:57:55 +01:00
Joachim WibergandTobias Waldekranz 9d51470ee2 utils: add srop, for operating on target sysrepo db
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-01-08 09:57:55 +01:00
Tobias WaldekranzandGitHub 49a003088b Merge pull request #881 from kernelkit/gre-tunnels
GRE tunnels
2025-01-07 17:02:37 +01:00
Joachim WibergandMattias Walström c099d887af Add support for GRE tunnels
Basic support GRE and GRETAP tunnels both for IPv4 and IPv6.
Limited support right now, only possible to configure local
ip address and remote ip address.
2025-01-07 15:33:37 +01:00
Mattias Walström 08990556e2 confd: Fix typo in veth code
Should check if any node under veth is changed instead
of peer (does not exist).
2024-12-20 19:47:18 +01:00
Mattias WalströmandGitHub cd5b076751 Merge pull request #879 from kernelkit/update-buildroot
Update buildroot to 2024.02.9
2024-12-20 19:46:23 +01:00
Mattias Walström 081f8e8412 Update buildroot to 2024.02.9 2024-12-20 14:28:02 +01:00
Mattias WalströmandGitHub 465d8cbc82 Merge pull request #838 from kernelkit/add-ssh-config
Add ssh config
2024-12-20 10:44:12 +01:00
Mattias Walström 323c77b702 Update branding document for the new behaviour with SSH hostkeys 2024-12-19 14:42:17 +01:00
Mattias Walström 780077e729 Document SSH configuration 2024-12-19 14:42:17 +01:00
Mattias Walström 324bcb2533 Update changelog for configurable SSH server 2024-12-19 14:42:17 +01:00
Ahmed KaricandMattias Walström e29a721571 test: move ssh_key_authentication to infix_services 2024-12-19 14:42:17 +01:00
Mattias Walström 389fc96794 test: Verify ssh server config
Fixes #441
2024-12-19 14:42:17 +01:00
Mattias Walström da260fabf9 infamy: restconf: Add support to delete individual entries in leaf-lists 2024-12-19 14:42:17 +01:00
Mattias Walström 79bec6877c Bump confd to 1.3
This since there is breaking changes.
2024-12-19 14:42:17 +01:00
Mattias Walström 37b97d9e4c Add support for configurable SSH server 2024-12-19 14:42:17 +01:00
Mattias Walström 2e81e99224 Generate any (SSH) key without content
This also makes it possible to remove the key 'genkey' if the
user wants.
2024-12-19 14:42:17 +01:00
Mattias Walström bea18c2fa9 Add new helper function rmrf
for recursive delete of directories
2024-12-19 14:42:17 +01:00
Tobias WaldekranzandGitHub 0233fdbf35 Merge pull request #878 from kernelkit/fix-build-id
build: Source build id from the correct repo, fix #872
2024-12-19 12:54:10 +01:00
Tobias Waldekranz 23ca94ea42 build: Source build id from the correct repo, fix #872
INFIX_OEM_PATH is `""` by default (i.e., not empty in `make`'s
eyes). So we called `git` with `-C ""`, which it interpreted as "from
the current directory" and thus we sourced the autogenerated build id
from _buildroot_ instead of Infix.

Therefore, make sure to strip any quotes from the OEM path before
determining the top directory.
2024-12-19 11:37:07 +01:00
Mattias WalströmandGitHub a8545e3369 Merge pull request #876 from kernelkit/change-boot-order
Change boot order
2024-12-19 11:23:45 +01:00
Tobias WaldekranzandGitHub 1f2973d93f Merge pull request #874 from kernelkit/br-refactor
Bridge refactor
2024-12-19 10:29:05 +01:00
Mattias Walström e00737ef78 test: Refactor upgrade test
* Use new cleanup in infamy to ensure the boot order gets restored
* Use new boot order in operational and use RPC to set boot order
  to remove all SSH commands.
2024-12-19 10:14:15 +01:00
Mattias Walström a90294fe08 test: infamy: Add optional test cleanup
If a test need to clean up itself disregarding test status,
it can add an optional test-cleanup phase.

This is useful if the test in some circomstances leave the device in a
bad state. This can be used to restore the unit to its ordinary state.
2024-12-19 10:14:15 +01:00
Tobias Waldekranz 77215aeb87 infamy: furl: Handle connection resets
Furl answers the question "is this URL serving the content I expect?"

Sometimes, we might be asking a server that in the middle of being
reconfigured, is crashing, is buggy, etc. - in which case it might RST
the connection. In that case the answer to the question is "False" and
not "BURN IT ALL DOWN!!"
2024-12-19 09:33:45 +01:00
Tobias Waldekranz 7dfb1f131e board/common: container: Use syslog log backend for containers
Now that conmon can do it, make use of it.
2024-12-18 23:25:07 +01:00
Tobias Waldekranz 7fecac2973 package/podman: Add syslog support
The only reliable way of getting logs from the container at all times
is to let conmon be the logging agent.

Unfortunately, the k8s-file format does not handle multiline output
very well, which is something we often see on the stdout/stderr of
containers.

Therefore, add proper syslog support to conmon instead, and make sure
that podman knows enough about it to pass the information along to
conmon.
2024-12-18 23:25:07 +01:00
Tobias Waldekranz bb939ccdff confd: Avoid initctl reload after exiting previous generation
Instead of running initctl reload, which also prematurely enables
services which are not supposed to be started until we have run
through the netdag and evolved to the next generation.

Handle the original use-case of disabling zeroconf is managed by
asking finit to stop the service immediately in the exit action, and
deferring the cleanup of the service until we call `initctl reload`
after the init action of the new generation.
2024-12-18 23:25:07 +01:00
Mattias Walström 8e38b34c55 doc: Add new boot order to the Changelog 2024-12-18 17:44:40 +01:00
Mattias Walström ff8669e735 Add support to set configure with RPC and read it from operational datastore 2024-12-18 17:44:40 +01:00
Ahmed KaricandGitHub 6a4c8f738e Merge pull request #875 from kernelkit/verify-mac-mcast
Verify MAC Multicast
2024-12-18 15:45:07 +01:00
Ahmed Karic 03cab6d1e4 Verify MAC multicast
Fixes #649
2024-12-18 14:55:00 +01:00
Tobias Waldekranz 96779c2620 confd: bridge: Simplify function names after review
Agreement: Avoid abbreviations in exported functions. Use short,
prefix-less, names for local functions.
2024-12-17 22:59:39 +01:00
Tobias Waldekranz e9a71ec3f7 confd: dagger: Define the script order on init/exit actions
In ye olde confd, we basically had `50-init.ip` - and that was fine.

Then came containers, VLANs, bridges, etc.; and with it: a whole
forest of setup/teardown scripts - and it was not fine anymore.

For example: if found an init script running at 61, you would have to
grep the source tree and look at _all_ other call sites to get a sense
of what runs before and/or after it.

Therefore: create enums for the init/exit actions where the order is
explicitly stated, and use those for all interface scripts.
2024-12-17 22:59:39 +01:00
Tobias Waldekranz b3da4c50fc confd: bridge: Refactor port setup
Clean up bridge-port config generation to align with the bridge upper
code.

- Remove lots of unnecessary guards that we model guaratees are always
  met (existance of containers and leafs).  This reduces indentation
  depth and increases readability, IMHO.

- Split the generation into smaller pieces, each with a clear purpose.

- Try  to include  all edge  cases around the  tricky subject  of PVID
  migrations,  with the  actions running  in either  exit or  init, as
  appropriate.
2024-12-17 22:59:39 +01:00
Tobias Waldekranz eb9ae5e4dd confd: bridge: Use confd god object to access dagger
Now that we have a god object, we might as well use it to make our
functions signatures a bit more readable.
2024-12-17 22:59:31 +01:00
Tobias Waldekranz 9591093379 confd: bridge: Refactor setup
TL;DR:
> New code, all bugs removed ;)

Incremental reconfiguration of bridge related settings had lots of
ordering issues.

This change tries to remedy that by:

- Introducing the concept of "snippets": Instead of having to run C
  code in the correct order (which is doomed to fail since teardowns
  typically need to run in reverse), collect related settings in a
  snippet.  Later on, we can then concatenate snippets into a larger
  file in the proper order.

- Refactoring the bridge setup to take advantage of snippets.  Now we
  can call out to functions that _both_ generate the VLAN config _and_
  sets some bridge global options, for example.  This gets us out of
  having to pass back settings to the main generation function.

- Ensuring that deleted objects are always removed - in the proper
  order - in the exit action of the previous generation.  This was
  previously not true for VLANs, fix #869.

- Generating `mcd`:s config orthogonally from the bridge setup.  Since
  we need to keep track of _all_ bridges, figure out when VLAN uppers
  exist etc., it becomes _very_ messy to generate the configuration
  from the diff of a single interface. There were lots of cases here
  where disabling the querier service on one bridge would disable the
  whole daemon, thereby disabling the service for other bridges that
  still had it enabled.
2024-12-17 22:59:31 +01:00
Tobias Waldekranz 68d8c19b53 confd: dagger: Fix archive naming
One `.tar.gz` extension ought to be enough for everyone.
2024-12-17 16:51:37 +01:00
Ahmed Karic dc2ced8e09 test/docker: Add scapy for verifying MAC multicast
'msend' only supports IP multicast
2024-12-16 16:31:40 +01:00
Mattias WalströmandGitHub 02a8c3d78d Merge pull request #871 from kernelkit/move-operational-from-confd
Move operational data about software state from confd => yanger
2024-12-16 08:36:07 +01:00
Mattias Walström a4ef38fbee test: upgrade: Add some debug print to see whats happen over time 2024-12-13 20:32:07 +01:00
Mattias Walström 5608e9457d Move operational data about software state from confd => yanger
Statd is now responsible for operational, move last big part
(infix-system-software) to yanger.
2024-12-13 20:32:07 +01:00
Tobias WaldekranzandGitHub 34f0c5a462 Merge pull request #870 from kernelkit/confd-ifaces-split
confd: Split up ietf-interfaces.c
2024-12-13 13:08:38 +01:00
Tobias Waldekranz 5675f89d37 confd: Split up ietf-interfaces.c
Fact: ietf-interface.c has become too unwieldy.

Therefore, split it, roughly based on the YANG structure, into
multiple files.

There is much more to do here, like cleaning up the naming (which is
all over the place), moving more system commands into dagger, etc. But
I wanted to keep this change to a strict code reshuffle.
2024-12-13 10:32:03 +01:00
Joachim WibergandGitHub 6d6f4e6dd9 Merge pull request #868 from kernelkit/remove-duplicates 2024-12-12 14:58:39 +01:00
Mattias Walström f06a42987a srx: helpers: Remove duplicate functions that has been moved to libite
Instead use the libite functions.
2024-12-12 09:11:54 +01:00
Mattias WalströmandGitHub 76ab0fe07a Merge pull request #866 from kernelkit/update-rousette
Add upstream patches for rousette
2024-12-11 13:29:56 +01:00