IPv4 and IPv6 addresses can be assigned a protocol value that indicates the
provenance of the IP address. The attribute is modeled after ip route
protocols, and essentially allows the administrator or userspace stack to
tag addresses in some way that makes sense to the actor in question.
Support for this feature was merged with commit 47f0bd503210 ("net: Add new
protocol attribute to IP addresses"), for kernel 5.18.
In this patch, add support for setting the protocol attribute at IP address
addition, replacement, and listing requests.
[Impact]
IPv4 and IPv6 addresses can be assigned a protocol value that indicates the
provenance of the IP address. The attribute is modeled after ip route
protocols, and essentially allows the administrator or userspace stack to
tag addresses in some way that makes sense to the actor in question.
Support for this feature was merged with commit 47f0bd503210 ("net: Add new
protocol attribute to IP addresses"), for kernel 5.18.
In this patch, add support for setting the protocol attribute at IP address
addition, replacement, and listing requests.
[Fix]
Apply the attached patch
[How to test]
$ cat << EOF > test.sh
#!/bin/sh
addr=192.0.2.1/28 {addr%/ *}2/${addr# */}
addr2=$
ifr=test-dummy123
sudo ip link add name "$ifr" type dummy
sudo ip link set "$ifr" up
sudo ip address add dev "$ifr" "$addr2" proto 0x99
sudo ip link del "$ifr"
EOF
$chmod +x test.sh
$test.sh
$ echo $?
0
if you get an error instead, like:
Error: either "local" is duplicate, or "proto" is a garbage.
your iproute2 is not patched.
Alternativerly, you could download Linux v6.5 and run:
$ sudo ./tools/ testing/ selftests/ net/rtnetlink. sh -t kci_test_ address_ proto
[Regression potential]
The cherry-picked patches are 2 upstream commits so regression potential is low.