Commit Graph
531 Commits
Author SHA1 Message Date
Joachim Wiberg 3d85eba3fc confd: add support for publishing container ports
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg b04c81199d confd: add support for host containers, shares host's interfaces
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg ffd2128614 confd: add support for container restart and restart policy
Also, ensure the deleted container is actually deleted before recreating
it with a new configuration.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 2b19b61068 confd: add support for manual start of containers
This commit adds 'manual:yes' to the container's Finit service
configuration and changes from pod: to container: prefix for a
unique namespace to prevent collision with regular services.

The prefix container: is more correct that pod:, which should
be reserved for any future pod support.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>

confd: fix missing variable in container script condition

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 9e801dfa2f confd: initial support for Docker containers using podman
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 0bda0727b7 confd: minor, whitespace only
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 0b6f7a6b93 package/execd: new local package
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg ad0463e96c libsrx: minor, constify since we don't modify these args
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 3bdf360b2e libsrx: minor, coding style
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 51dc940059 package/klish-plugin-sysrepo: new commands 'change' + 'text-editor'
This bump adds support for 'set foo' to set foo=true, but also two new
commands from srp_helper@: 'change password', 'text-editor content'.

 - ietf-system: 'change password' now starts an interactive session that
   results in a random-salted sha512 encrypted hash.
 - 'text-editor <node-of-binary-type>', starts 'editor file | base64'
 - 'set <node-of-bool-type>', sets node=true

A prototype askpass script has been added as a proof-of-concept.  It
follows the design of other askpass style programs, like ssh-askpass,
that pass the resulting password on stdout.  With the additional support
for also writing it to an output file, e.g., a pipe.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 0468f35fb6 cli: minor, whitespace and fix 'show' subcommand help
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Joachim Wiberg 1e87a30147 confd: skip ethtool command for etherlike interfaces
When "plopping" back an interface from another network namespace, e.g.,
when removing a container network interface, we cannot just rely on the
'ethernet' node *not* being available for an interface.

Experience shows that sysrepo might send us a curve ball (see comment)
which we interpret to be a true Ethernet interface.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-02-25 19:49:27 +01:00
Mattias Walström 83effa6fd4 Use common CFLAGS in all src-packages.
And fix bugs that the new CFLAGS find.
2024-02-23 14:01:23 +01:00
Mattias Walström afa243cd2f confd: core: keep one instance of /run/system.json open
Add entry in struct confd to keep it accessable for all callbacks.
2024-02-23 14:01:23 +01:00
Mattias Walström c57a4655b8 ietf-routing: Handle return value from touch() 2024-02-23 14:01:23 +01:00
Mattias Walström 30e2a814eb factory: getchar() returns integer not char 2024-02-23 14:01:23 +01:00
Mattias Walström c0a071e87a Add 'show hardware' only show USB port status for now 2024-02-23 14:01:23 +01:00
Mattias Walström a6ff416401 confd: Add support for ietf-hardware
Add supports to enable disable USB port
2024-02-23 14:01:23 +01:00
Mattias Walström 66c20aa79d bootstrap: Enable states feature to ietf-hardware 2024-02-23 14:01:23 +01:00
Mattias Walström b0f2388153 probe: Add support for multiple /sys nodes for a of-node 2024-02-23 14:01:23 +01:00
Mattias Walström 5e707753e9 ietf-hardware: YANG: Deviate everything not supported yet 2024-02-23 14:01:23 +01:00
Mattias Walström 6099ac79e2 Add script to generate entries for external ports
For the user to be able to enable them in runtime
2024-02-23 14:01:23 +01:00
Richard AlpeandTobias Waldekranz 1da00a9764 yang: add stp-state to infix-if-bridge
Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-20 21:43:48 +01:00
Richard AlpeandJoachim Wiberg 104a70d46c confd: handle etherlike delete as ethernet
This resolves the regression where configured etherlike interface mac
addresses where not deleted from the system.

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-05 18:01:30 +01:00
Richard AlpeandJoachim Wiberg f35f176860 confd: identify virtio interfaces as "etherlike"
Instead of "ethernet". Prior to this patch virtio interfaces where
identified as "ethernet", which resulted in /run/net trying to enable
autoneg on them. Which isn't supported and resulted in an ABANDONED
"default config".

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-05 18:01:30 +01:00
Richard AlpeandJoachim Wiberg 198be2a9c6 confd: add new interface type "etherlike"
Needed for devices that share a lot of properties with an ethernet
device but doesn't support "ethtool" and such. An example is TAP
interfaces.

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-05 18:01:30 +01:00
Richard AlpeandJoachim Wiberg 79ce152abb confd: fix indentation in gen-interfaces
Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-05 18:01:30 +01:00
Tobias WaldekranzandJoachim Wiberg 870d41644f confd: ethtool: Condense logic around autoneg configuration
Rely on the interface diff to figure out if any autoneg related config
has changed; if so, generate the resulting configuration based on the
current interface config.

- Remove loopback check, the model only allows ethernet config on
  interfaces of type "ethernet".

- Split up the input validation of speed/duplex to give the user an
  error message with as much specificity as possible.

- Validate that the configured speed/duplex is supported.

- Move the generated script to execute earlier to avoid unnecessary
  link flapping.

- Use negative POSIX error codes, these are (or at least should be)
  mapped to sysrepo errors in netdag_gen_iface.
2024-02-05 18:01:30 +01:00
Richard AlpeandJoachim Wiberg 43017cc79f confd: add the ability to set speed, duplex and autoneg
Add the ability to configure interface speed, duplex and autoneg.
Initially this was pared with YANG model deviations that restricted
explicit interface speed and duplex when autoneg was enabled. But due
to conflicting default states in YANG, this code was dropped.

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-02-05 18:01:30 +01:00
Tobias WaldekranzandMattias Walström 583881c1f9 keyack: Add program to wait for key press and release
Useful for testing buttons bound to a gpio-key, e.g. a factory reset
button.
2024-02-01 14:18:14 +01:00
Mattias Walström 6b23a2b432 confd: infix-dhcp: Remove dead code 2024-01-31 14:27:57 +01:00
Mattias Walström ef5d5d21a0 statd: Free sub when exit on error 2024-01-31 14:27:57 +01:00
Joachim WibergandTobias Waldekranz 307cdb02b4 confd: bump infix-dhcp-client YANG model version for release
The DHCP client YANG model saw a lot of changes added in the 23.12
sprint, fortunately there was never an official release.

This commit bumps the model version for v24.01.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-01-30 15:32:38 +01:00
Joachim WibergandTobias Waldekranz 12f5a88b3b confd: infer default DHCP client options
For maximum flexibility we allow the user to full control over the DHCP
options the client requests.  For this to work we must tell udhcpc to
not set any of its defaults behind the scenes, so we call it with '-o'.

This commit adds support for inferring these udhcpc default options in
NETCONF.  So when enabling the DHCP client we now get the same set of
sane options as udhcpc otherwise hides from us.

Fixes #278, at least wrt. the lack of sent options.  Allowing the client
script to set the hostname will be added in a later commit.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-01-30 15:32:38 +01:00
Joachim WibergandTobias Waldekranz 08cec2e9bc confd: add exception for hostname DHCP client option
No need to guard the hostname option in quotes, it must not contain
whitespace.  If user configured more than one word, use first.

Fixes #283

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-01-30 15:32:38 +01:00
Mattias Walström 6d0f666ae1 CLI: OSPF: Add database and routes as show ospf subcommands 2024-01-29 14:49:28 +01:00
Richard AlpeandTobias Waldekranz 0549de0eec infix-*.yang: fix indentation (2 spaces)
Align indentation in all infix yang models to be 2 spaces.

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-01-23 21:25:39 +01:00
Mattias Walström 9c466b84df clang-format: Fix correct linux-formatting 2024-01-23 15:30:40 +01:00
Mattias Walström c4320cd036 ietf-hardware: Add infix deviations 2024-01-23 15:30:40 +01:00
Mattias Walström c1d616159f Add ietf-hardware and iana-hardware yangfiles 2024-01-23 15:30:40 +01:00
Mattias Walström c826e06311 statd: Listen for ietf-hardware requests 2024-01-23 15:30:40 +01:00
Mattias Walström e73b3afe8c statd: Refactor subscription callbacks
Add a new generic callback to reduce code duplication.
2024-01-23 15:30:40 +01:00
Mattias Walström 8a2bc3dae9 statd: Coding style 2024-01-23 15:30:40 +01:00
Mattias Walström 22269b6057 Yanger: Implement ietf-hardware
Wrap all VPD data and show them as components in ietf-hardware.
2024-01-23 15:30:40 +01:00
Richard AlpeandJoachim Wiberg 641d328238 infix-eth-if.yang: update revision
Signed-off-by: Richard Alpe <richard@bit42.se>
2024-01-22 16:50:36 +01:00
Richard AlpeandJoachim Wiberg 7657b49b2b infix-eth-if.yang: deviate negotiation-status not-supported
Signed-off-by: Richard Alpe <richard@bit42.se>
2024-01-22 16:50:36 +01:00
Richard AlpeandJoachim Wiberg 2d38896cd5 infix-eth-if.yang: remove comment about deviating eth
This is now supported by Infix.

Signed-off-by: Richard Alpe <richard@bit42.se>
2024-01-22 16:50:36 +01:00
Mattias Walström 3b87a077f9 ietf-routing: Add limitation on supported routing-protocols
Only OSPFv3 and Static routes is currently allowed in infix.
2024-01-18 14:20:13 +01:00
Tobias WaldekranzandJoachim Wiberg 74ed929873 confd: Change the default shell of the admin user to bash
This let's users script infix devices without needing any special
NETCONF tools installed - ssh is enough. E.g. you can get the running
version with something like:

    ssh INFIX-HOST sysrepocfg -X -fjson -d operational \
    	-x "/system-state/platform/os-release" | jq .

It also means that SCP works as expected, by default.
2024-01-18 00:02:55 +01:00
Tobias WaldekranzandJoachim Wiberg f3678ac93f Provide a hint of how to access the CLI when other shells are used
For users with a shell other than clish, such as bash, print out a
hint of how to enter clish, when logging in.
2024-01-18 00:02:55 +01:00