Commit Graph
935 Commits
Author SHA1 Message Date
Joachim WibergandTobias Waldekranz 04e8a87287 package: set foo_REDISTRIBUTE = NO for local packages
When running `make legal-info` Buildroot will collect source and
licenses for all packages, which generates a few warnings for our
local packages.  Local packages are skipped.

> The source code for packages that set <PKG>_REDISTRIBUTE = NO will not
> be saved.  Patches that were applied are also saved, along with a file
> named series that lists the patches in the order they were applied.

Hence, setting 'foo_REDISTRIBUTE = NO' disables the warning, which seems
like a good idea to reduce the number of unnecessary questions we might
otherwise get.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 12:44:57 +02:00
Joachim WibergandTobias Waldekranz ab88c97d45 package/statd: properly declare license and group decls.
Correct license for package is the same as confd and libsrx.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 12:44:57 +02:00
Joachim WibergandTobias Waldekranz 1baeaeddf5 src/statd: licensed under the same license as confd & libsrx
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 12:44:57 +02:00
Joachim WibergandTobias Waldekranz b6baf452bd package/confd: properly declare license and group decls.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 12:44:57 +02:00
Joachim WibergandTobias Waldekranz e3d9236927 test: disable flaky services_basic test
See issue #126 for details.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 8ce3785d26 test/case: increase test time slightly to catch per-20 sec LLDP
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz c07d3e7ec9 Relocate confd-bootstrap.sh to /usr/libexec
Bootstrap and daemon-specific helper scripts, sometimes known as foot
guns, should not be in $PATH.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 31abe00514 test/case: add LLDP to same test
This unfortunately required some restructuring, and as well as extending
the run time since we have no way of sending Ethernet frames currently
in the test framework (socat would be nice).

 - Put enable/disable of services before tcpdump start, LLDP lingers ...
 - Extend run time: 3 -> 20 sec to catch periodic LLDP messages

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 943603b636 test/case: check for both SSDP and mDNS in same test
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 3dd5810b59 test/case: new test, verify SSDP can be disabled/enabled
This test use NETCONF to enable/disable SSDP, it then verifies that the
DUT responds to, or does not respond to, SSDP discover messages.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 9075e93524 test: add SsdpClient helper class to probe for end devices
This first version reliles on netcat (nc), mostly because that's what I
could figure out how to run in a netns.  A better way would be to have a
full SsdpClient that can collect query responses properly and log all
devices found.

This, however, will do fine for verifying SSDP on/off functionality.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 9a5c619571 test: add Sniffer helper class, wrapping tcpdump
Monday fixup, audit with @wkz

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 1ff744fd04 test: minor, syntax pep-8
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 27387e5e27 package/skeleton-init-finit: rename SSDP service .conf
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz b31e2e9a74 package/skeleton-init-finit: let SSDP advertise every 30 sec, like LLDP
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz efccd7fbda Enable LLDP agent in factory-config
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 50a550b83f confd: add support for enabling LLDP agent using ieee802-dot1ab-lldp
This patch adds support for enabling LLDP using the std IEEE 802.1ab
LLDP yang model.  An infix-lldp model is as well to reduce the set of
available parameters to a bare minimum (enabled), for now.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz f6cfdfd467 cli: add "end" alias to "up", leave this node/subsection
I'm sorry, I'm just so used to this modus from the previous company.
The difference to 'exit', which is available on Cisco IOS, is that it
on the top-level config context does not exit/abort to admin-exec but
instead stops.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 44987d7045 Fix 120: rename sysrepo-bootstrap -> confd-bootstrap
The script resides with confd and sets up our system for confd, this
should make it easier to rememeber where it's located.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 757428364b patches/tcpdump: add missing drop-verbose-default-output patch
Lost in the big summer merge of 2023

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 445cf92009 patches/netcalc: add missing pipe colorization patch
Lost in the big summer merge of 2023

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz bbf9560d73 Ignore /.backup and /x-* directories
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 9e1e90e87b Enable mDNS/SD and SSDP discovery services in factory-config
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz dba737b975 confd: add support for enabling mDNS/SD and SSDP discovery services
Also, for usability, add `name:<SVC>` to each service declaration so they
can be located more easily and/or enabled/disabled using the service they
provide.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 295cc11a8d confd: flatten hierarchy now that statd has moved out
Fix #115

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz ac011e459b src: minor, add missing dist_doc_DATA incl. LICENSE file
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz a38e5582ac Refactor, break out a libsrx from confd, shared with statd
Everything (!) potentially shared with other sysrepo plugins/daemons and
helper functions (not yet in libite) that can be used by other daemons
have been relocated to libsrx.

Fix #116

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Joachim WibergandTobias Waldekranz 72c8aaef0c package/skeleton-init-finit: enable fewer services by default
This patch drops auto-enable of services we want to be able to control
via NETCONF/YANG.  SSDP and mDNS/SD enable/disable configure support,
using native models, will be included in the same PR and LLDP+SNMP may
come later, using std. IEEE/IETF models, they are not critical atm.

Fix #118

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-30 10:37:43 +02:00
Tobias WaldekranzandJoachim Wiberg 2d6c872937 netconf: Ignore internal ifaces (e.g. DSA ports) in factory-config
On some system, certain interfaces are not usable by an end-user. The
canonical example of this is the ethernet MAC connected to a switch,
i.e. the DSA port.

Avoid having these be picked up in the generated factory-config, which
would be confusing to a user, by classifying them as "internal" ports
to be ignored by confd and friends.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 319a1bb46b cn9130-crb: Add a workaround for the MMC timeout issue in U-Boot
For some reason, the controller disables the bus power sometime after
it was enabled by the driver. The reference manual says, in Table 645,
about the SD_BUS_POWER bit:

> ... It will be cleared if one of the following occurs: the
> sd_bus_vlt and the voltage support in the Capabilities Register 1 do
> not match or if a card removal state was detected.

Further investigation will be needed to find the (electrical?)
root-cause of this issue.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 02ac90b35f cn9130-crb: Upgrade U-Boot to 2023.07.02 2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 06ea1dd80b uboot: Fix inconsistency in naming of the netboot mode
This is referred to "net" in all places except for this script.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 246b06b8d5 uboot: When booting from a block device, wait for it to show up
The kernel's mounting of the rootfs may race against the underlying
device being probed - especially for media like MMC cards and USB
sticks.

Therefore, tell the kernel to wait for the root device to show up.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 73f991081c post-image: Allow disk images to be built from downloaded release
This is useful when we're only building a bootloader, but we still
want to create a full disk image on the format expected by Infix.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg c08fe9f522 post-image: Defer RAUC status file generation to disk image creation
In the future we want to build disk images from builds where we
haven't locally built Infix, we've just downloaded an existing
release. In those cases we also have to create rauc.status, even
though we're not creating a bundle.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg cf05d46548 aarch64: Keep dtb directory structure from kernel tree in /boot
This is the layout expected by the "distro boot" effort in U-Boot.

As far as I understand, the contract is:

- U-Boot built for `fooboard` by `vendor`, will set the `fdtfile`
  variable to `vendor/fooboard.dtb` - or more precisely: matching
  whatever path the dtb is built at in the kernel tree.

- A distro (e.g. Infix) then just needs to specify the `fdtdir` in its
  syslinux config (/boot in our case), and U-Boot will be able to find
  the correct dtb.
2023-08-25 10:51:45 +02:00
Tobias WaldekranzandJoachim Wiberg 308a620b69 common: Improve "traditional FIT" image generation
Make the traditional FITs smaller by:

- Filtering out the kernel image from the rootfs, since the FIT way is
  to ship it separately.

- Gzipping the kernel in the FIT, since aarch64 uses the uncompressed
  "Image" format, and squashfs won't take care of it for us.
2023-08-25 10:51:45 +02:00
Richard AlpeandTobias Waldekranz c6513a37bb cli: add source to show interface (ietf type)
Add source, such as "ethernet" to the show ietf interfaces command.
This is translated from the somewhat obscure ietf type, such as
iana-if-type:ethernetCsmacd => ethernet

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz 1112203eb3 cli: merge ipv4 and mac in show interface output
Print both ip and mac in the PROTOCOL/ADDRESS column.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz fdf027d282 cli: change header design in show interfaces
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz 035397e87f cli: add color to state in show interfaces
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz 03f99d7252 cli: autocomplete interface names in show interfaces
And quote the "$name" variable.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz 62f0958b65 cli: replace show interfaces with new pretty printer
Replace the old "ip" output with data from the sysrepo operational
datastore. This data is piped through the new json-cfg-pretty script,
which formats the data in a nice human readable way.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Richard AlpeandTobias Waldekranz 2656f17f58 statd: add operational ipv4 address data
Add IPv4 address info from "ip addr" json to sysrepo operational
datastore.

This patch adds: MTU and ip with prefix-length.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-08-23 14:45:38 +02:00
Jon-Olov VatnandJoachim Wiberg d34908a0e5 Fixing broken urls in document docs 2023-08-22 13:41:09 +02:00
Joachim WibergandTobias Waldekranz 3f3de71a38 Fix #107: auto-sync forks every day 2:42 UTC or on dispatch
Highly experimental.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-22 13:33:19 +02:00
Joachim WibergandTobias Waldekranz fcb629f08f test: update cases to use new infix-if-types
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-22 13:32:47 +02:00
Joachim WibergandTobias Waldekranz 3a56cbe1d4 confd: minor janitoring, yang linting
The commit adds a missing description and reorders some yang statements
to meet canonical ordering according to RFC7950, section 14.

It also relocates the /interfaces/interfaces/infix-if:port augment to
its own base model that the bridge (and later lag) models reference.
Solving the bisarre ordering issues we've seen previously.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-22 13:32:47 +02:00
Joachim WibergandTobias Waldekranz 34fd50d1b8 confd: add deviation for if:type limiting it to supported types
This patch adds a new infix-interface-type, derived from the IANA base
type, allowing us to limit the list of supported native interface types.

Basing on IANA interface type ensure compatibility with other models,
e.g., standard/ieee/published/802.3/ieee802-ethernet-interface.yang,
which attaches itself to all interfaces of type ianaift:ethernetCsmacd.

Tested with yanglint and in Infix using ieee802-ethernet-interface.yang,
the 'ethernet' container was properly attached to interfaces of type
infixift:ethernet.

Tab completion in the CLI now lists only the supported types.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-22 13:32:47 +02:00
Joachim WibergandTobias Waldekranz 43dd052707 confd: in case of error from aug_save(), log error strings
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-22 13:32:47 +02:00