Commit Graph
987 Commits
Author SHA1 Message Date
Joachim Wiberg f7e877ebcc test/case: add new test to suite
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim Wiberg e528fe0e34 test/case: new test, verify custom mac address
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim Wiberg d3ac2942bb test/infamy: refactor and add iface.get_phys_address()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim Wiberg 826ea9d2a9 test/infamy: add missing <get-data> RPC to netconf-client
The netconf-client Python lib currently does not support the <get-data>
RPC.  This commit adds a local extension to the Device class which can
be upstreamed at a later time.

Also some added comments and disabling of pylint warnings.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim Wiberg 15bc21c56b test/infamy: minor refactor and whitespace
- prefix local members with _
 - pylint whitespace
 - pylint unnecessary parens

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim Wiberg d0bb51e433 confd: add support for setting phy-address on interfaces
- Override read-only flag in YANG model
 - Add support for setting custom MAC
 - Add support for restoring permanent/original MAC

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 16:34:48 +02:00
Joachim WibergandTobias Waldekranz d5f9f1a73e confd: fix IPv6 autoconf support
- Enable privacy feature, allows true random address instead of EUI64
 - Allow global addresses to use router prefix

Fixes #136

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-21 09:05:49 +02:00
Richard AlpeandJoachim Wiberg f2267b98b9 avahi: set proto random for ipv4 Link-Local address
Set the IP origin "random" for avahi IPv4LL addresses. The reason we
use random and not link-layer for link-local IPv4 addresses is the
fact that they are not based on link-layer info, such as IPv6 eui64
generated LL addresses.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg 32511c2b2b avahi: add pristine copy of avahi-autoipd.action
Add a pristine copy of the current version of avahi-autoipd.action.
This script will be modified by us in later commits.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg d00c062c0e cli: print ip origin in detailed interfaces view
Include ip origin when doing "show interfaces name NAME". Both IPv4
and IPv6.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg 411fa38c50 cli: pretty print ipv6 addresses in show interfaces
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg 4cfe0fa945 test: add ipv6 to bloated.json for cli-pretty
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg cf0c99bd78 statd: add ipv6 data to operational datastore
Modify existing IPv4 code to also add IPv6 address data to the
operational datastore. Also add support for handling link-layer IPv6
address.

IPv6 LL addresses generated with eui64 has "link-layer" origin
and random/secure generated LL addresses has "random" origin.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg b05d220fa4 statd: break out existing ipv4 code (cosmetic)
A preparation patch for ipv6 support. There's no functional change.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-20 11:33:35 +02:00
Richard AlpeandJoachim Wiberg f69b08ea59 test: add top level unit test suite
This currently includes cli-pretty tests. It could be executed
separately to clarify test results in github actions. This commit
includes it in the main test execution. The most important thing is
that it's executed.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:57:08 +02:00
Richard AlpeandJoachim Wiberg ebdbc1e7ad test: use sh shell in cli pretty test runner (POSIX)
Bash is apparently missing in the Alpine Docker.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:57:08 +02:00
Richard AlpeandJoachim Wiberg 2830080c0f .github: checkout submodules in regression.yml
It doesn't look like the regression suites updates the 9pm submodule,
in this commit we attempt to fix this.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:57:08 +02:00
Richard AlpeandJoachim Wiberg ed2060c2a2 Bump 9pm submodule
> 9pm: print git sha sum in banner
> 9pm: add graceful check for missing suites and tests
> ssh: Spell out the full name of node properties
> ssh: Remove username from debug messages
> Merge pull request #48 from neg/execute-cleanup

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:57:08 +02:00
Richard AlpeandJoachim Wiberg 12d4760156 test: add ip addr origin to bloated.json unit test
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg b4ad2fb3c4 confd: add ip proto when setting static ip
There might be more places in confd where this is needed. This works
for the most basic use case.

The proto set here is picked up by statd and converted into a YANG
origin, which is exposed to the user.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 59c02bd7f3 udhcpc: flush dhcp addresses in default.script
Flush addresses during shutdown and renewal with new address.
This is kind of a hack and needs further testing.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg f75053c931 udhcpc: convert default.script to use ip not ifconfig
This fixes one bug in Infix, namely that dhcp removes all other
statically configured addresses. However it introduces a new one
where dhcp renewals with new ip addresses are added as "duplicates",
we fix this in a later commit in this patchset.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 7f89abe1af udhcpc: add pristine copy of default.script
Add a pristine version of default.script to our local board override.
The reason for this commit is to track changes we do to it.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg e3a2895531 cli-pretty: print ip address origin (ip route proto)
Print the origin which is based on info from ip route proto.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 6e9ba0fce5 cli-pretty: use self variables for ipv4 address
Cosmetic code cleanup.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 669379818e statd: add operational ip addr origin (proto) data
Add protocol from ip route (kernel) as origin in YANG model.

Note, we control the names static and dhcp in the file rt_addrprotos.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 478a15bc90 statd: break out ipv4 address creation (cosmetic)
This commit is purely cosmetic.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 2c25a1f343 iproute2: add rt_addrprotos file
This file is read by iproute2 and creates valid names for ip proto.

Such as "static" in:
ip addr add dev e0 192.168.1.1/24 proto static

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg d61762dc7a iproute2: add upstream patch for ip protocol
Add a pristine upstream patch which includes protocol info in ip the
ip command.

More info:
https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/commit/?id=bdb8d85
2023-09-19 11:56:14 +02:00
Richard AlpeandJoachim Wiberg 8fc709676f Bump 9pm submodule
> 9pm: add new result markdown file
> Use unique log dir for each 9pm execution
> 9pm: parse 9pm.rc file in harness
> Add new 9pm.py harness examples
> 9pm: add space between timestamp and output
> Move tcl library code to lib_tcl subdirectory
> 9pm: fix TAP skip result when not last in test
> unit_test: allow tap.yaml to be executed from cmdline
> Merge pull request #49 from kernelkit/master

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-12 11:07:01 +02:00
Richard AlpeandJoachim Wiberg ea4a187a1a cli: don't set empty to none in show iface pretty
This allows us to show empty values easier, while not affecting the
if statements.

This allows for a greater flexibility in which values are shown and
not. For example, we want to show empty columns for data that the
user adds/removes, such as IP addresses.

...
ipv4 addresses      :
...

However, we don't want to show empty columns for information that
should never exist for a particular interface type.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-12 08:33:14 +02:00
Richard AlpeandJoachim Wiberg 3000597fbc cli: add statistics to detailed show interface view
Print in and out octets for each interface that has the information
in the operational data store.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-12 08:33:14 +02:00
Richard AlpeandJoachim Wiberg 7b1974c85f cli: print ipv4-address key even if no ip is set
Should make reading easer and make it more obvious if an interface
doesn't have an IP set.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-12 08:33:14 +02:00
Joachim Wiberg c421e14e6c doc: replace 'exec' with '/', CLI fixed as of v23.08
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-10 11:01:23 +02:00
Joachim Wiberg 9f573f6c6f Add CLI example fold-out
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-09 17:59:20 +02:00
Joachim Wiberg c9e84bffd8 Minor spellcheck and update of footnote
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-09 17:53:33 +02:00
Richard AlpeandJoachim Wiberg 3c2b901439 aarch64: add python3 on target (defconfig)
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Richard AlpeandJoachim Wiberg 9e48fb09f6 cli: rewrite interface pretty printer in phyton3
The old version (bash) where slow and cluttered. This version is much
faster and easier to read / maintain.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Richard AlpeandJoachim Wiberg 1ea658ad1d test: add new cli-pretty unit test
This test is a "unit" test, which implies that it can be executed
locally without access to a Infix target environment.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Richard AlpeandJoachim Wiberg 7b0bd77d16 x86_64: add python3 on target (defconfig)
Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Richard AlpeandJoachim Wiberg 5ac24eb29e statd: add parent-interface to operational data
Add ietf-if-extensions:parent-interface which is synonymous with link
in ip-route.

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Richard AlpeandJoachim Wiberg 48120c9144 statd: add interface bridge to operational datastore
Add bridge master into "infix-interfaces:bridge-port" -> "bridge".

Signed-off-by: Richard Alpe <richard@bit42.se>
2023-09-06 16:11:59 +02:00
Joachim Wiberg ce95488420 .github: fix sync action pat naming
GITHUB_ prefix is reserved.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-05 07:40:17 +02:00
Joachim Wiberg 2bcf0d1f57 doc: add Development section and expand on initial requirements
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-01 16:13:47 +02:00
Joachim Wiberg 2d608f44b1 doc: fix markdown link to Buildroot manual
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-09-01 16:13:27 +02:00
Joachim Wiberg 94d93260a8 doc: add symlink for default README -> variant.md
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-31 18:02:20 +02:00
Joachim Wiberg c592818587 .github: fix missing release notes from release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-31 17:57:00 +02:00
Joachim Wiberg 8b4f10c21d doc: update ChangeLog for v23.08 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
v23.08.0
2023-08-31 13:23:15 +02:00
Joachim Wiberg 76fe75469d libsrx: fix include, core.h replaced by common.h outside confd
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-08-31 10:47:08 +02:00
Tobias WaldekranzandJoachim Wiberg a88391afa2 common: nameif: Drop the assumption that any eN interface is a port
The port marker is intended to be used as a hint to the
auto-factory-config generator, so that it can create a bridge for all
switch ports by default. Therefore, revert to only include ports that
devlink reports as "flavour physical".

If we want to test this functionality in QEMU, we can use Rocker, the
virtual switch, instead.
2023-08-30 12:45:51 +02:00