ipv6: ioam: Documentation for new IOAM sysctls
Add documentation for new IOAM sysctls:
- ioam6_id and ioam6_id_wide: two per-namespace sysctls
- ioam6_enabled, ioam6_id and ioam6_id_wide: three per-interface sysctls
Example of IOAM configuration based on the following simple topology:
_____ _____ _____
| | eth0 eth0 | | eth1 eth0 | |
| A |.----------.| B |.----------.| C |
|_____| |_____| |_____|
1) Node and interface IDs can be configured for IOAM:
# IOAM ID of A = 1, IOAM ID of A.eth0 = 11
(A) sysctl -w net.ipv6.ioam6_id=1
(A) sysctl -w net.ipv6.conf.eth0.ioam6_id=11
# IOAM ID of B = 2, IOAM ID of B.eth0 = 21, IOAM ID of B.eth1 = 22
(B) sysctl -w net.ipv6.ioam6_id=2
(B) sysctl -w net.ipv6.conf.eth0.ioam6_id=21
(B) sysctl -w net.ipv6.conf.eth1.ioam6_id=22
# IOAM ID of C = 3, IOAM ID of C.eth0 = 31
(C) sysctl -w net.ipv6.ioam6_id=3
(C) sysctl -w net.ipv6.conf.eth0.ioam6_id=31
Note that "_wide" IDs equivalents can be configured the same way.
2) Each node can be configured to form an IOAM domain. For instance,
we allow IOAM from A to C only (not the reverse path), i.e. enable
IOAM on ingress for B.eth0 and C.eth0:
(B) sysctl -w net.ipv6.conf.eth0.ioam6_enabled=1
(C) sysctl -w net.ipv6.conf.eth0.ioam6_enabled=1
3) An IOAM domain (e.g. ID=123) is defined and made known to each node:
(A) ip ioam namespace add 123
(B) ip ioam namespace add 123
(C) ip ioam namespace add 123
4) Finally, an IOAM Pre-allocated Trace can be inserted in traffic sent
by A when C (e.g. db02::2) is the destination:
(A) ip -6 route add db02::2/128 encap ioam6 trace type 0x800000 ns 123
size 12 dev eth0
Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
3edede08ff
commit
de8e80a54c
26
Documentation/networking/ioam6-sysctl.rst
Normal file
26
Documentation/networking/ioam6-sysctl.rst
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=====================
|
||||||
|
IOAM6 Sysfs variables
|
||||||
|
=====================
|
||||||
|
|
||||||
|
|
||||||
|
/proc/sys/net/conf/<iface>/ioam6_* variables:
|
||||||
|
=============================================
|
||||||
|
|
||||||
|
ioam6_enabled - BOOL
|
||||||
|
Accept (= enabled) or ignore (= disabled) IPv6 IOAM options on ingress
|
||||||
|
for this interface.
|
||||||
|
|
||||||
|
* 0 - disabled (default)
|
||||||
|
* 1 - enabled
|
||||||
|
|
||||||
|
ioam6_id - SHORT INTEGER
|
||||||
|
Define the IOAM id of this interface.
|
||||||
|
|
||||||
|
Default is ~0.
|
||||||
|
|
||||||
|
ioam6_id_wide - INTEGER
|
||||||
|
Define the wide IOAM id of this interface.
|
||||||
|
|
||||||
|
Default is ~0.
|
||||||
@@ -1926,6 +1926,23 @@ fib_notify_on_flag_change - INTEGER
|
|||||||
- 1 - Emit notifications.
|
- 1 - Emit notifications.
|
||||||
- 2 - Emit notifications only for RTM_F_OFFLOAD_FAILED flag change.
|
- 2 - Emit notifications only for RTM_F_OFFLOAD_FAILED flag change.
|
||||||
|
|
||||||
|
ioam6_id - INTEGER
|
||||||
|
Define the IOAM id of this node. Uses only 24 bits out of 32 in total.
|
||||||
|
|
||||||
|
Min: 0
|
||||||
|
Max: 0xFFFFFF
|
||||||
|
|
||||||
|
Default: 0xFFFFFF
|
||||||
|
|
||||||
|
ioam6_id_wide - LONG INTEGER
|
||||||
|
Define the wide IOAM id of this node. Uses only 56 bits out of 64 in
|
||||||
|
total. Can be different from ioam6_id.
|
||||||
|
|
||||||
|
Min: 0
|
||||||
|
Max: 0xFFFFFFFFFFFFFF
|
||||||
|
|
||||||
|
Default: 0xFFFFFFFFFFFFFF
|
||||||
|
|
||||||
IPv6 Fragmentation:
|
IPv6 Fragmentation:
|
||||||
|
|
||||||
ip6frag_high_thresh - INTEGER
|
ip6frag_high_thresh - INTEGER
|
||||||
|
|||||||
Reference in New Issue
Block a user