diff --git a/api/v1alpha1/router_types.go b/api/v1alpha1/router_types.go
index 3a58562..8c22761 100644
--- a/api/v1alpha1/router_types.go
+++ b/api/v1alpha1/router_types.go
@@ -64,11 +64,12 @@ type BGPRouterSpec struct {
// +optional
SRv6Locator string `json:"srv6Locator,omitempty"`
- // NodeID is this router's 8-bit slot within its PoP's SRv6Locator block,
+ // NodeID is this router's 16-bit slot within its PoP's SRv6Locator block,
// used for RFC 9800 NEXT-CSID compression. Unique within the PoP.
- // Values 0 and 255 are reserved.
+ // The uSID carrier format reserves 0x0000 and 0xE000-0xFFFF (the latter is
+ // Function space, not Node-ID space), leaving 0x0001-0xDFFF assignable.
// +kubebuilder:validation:Minimum=1
- // +kubebuilder:validation:Maximum=254
+ // +kubebuilder:validation:Maximum=57343
// +optional
NodeID int32 `json:"nodeID,omitempty"`
diff --git a/config/crd/network.datumapis.com_bgprouters.yaml b/config/crd/network.datumapis.com_bgprouters.yaml
index dcad7bd..853c2ca 100644
--- a/config/crd/network.datumapis.com_bgprouters.yaml
+++ b/config/crd/network.datumapis.com_bgprouters.yaml
@@ -112,11 +112,12 @@ spec:
type: integer
nodeID:
description: |-
- NodeID is this router's 8-bit slot within its PoP's SRv6Locator block,
+ NodeID is this router's 16-bit slot within its PoP's SRv6Locator block,
used for RFC 9800 NEXT-CSID compression. Unique within the PoP.
- Values 0 and 255 are reserved.
+ The uSID carrier format reserves 0x0000 and 0xE000-0xFFFF (the latter is
+ Function space, not Node-ID space), leaving 0x0001-0xDFFF assignable.
format: int32
- maximum: 254
+ maximum: 57343
minimum: 1
type: integer
routerID:
diff --git a/docs/api/bgp.md b/docs/api/bgp.md
index 09871e7..ff6b7aa 100644
--- a/docs/api/bgp.md
+++ b/docs/api/bgp.md
@@ -781,7 +781,7 @@ _Appears in:_
| `routerID` _string_ | RouterID is a unique 32-bit identifier expressed in IPv4 dotted-decimal notation.
In an IPv6-only underlay this is a logical identifier only. | | Format: ipv4
Required: \{\}
|
| `addressFamilies` _[AddressFamily](#addressfamily) array_ | AddressFamilies defines the address families this router activates. | | MinItems: 1
|
| `srv6Locator` _string_ | SRv6Locator is the SRv6 locator block this router owns, expressed as an
IPv6 CIDR (e.g. "2001:db8:ff01::/48"). Individual SRv6 endpoint SIDs are
host addresses within this block. | | |
-| `nodeID` _integer_ | NodeID is this router's 8-bit slot within its PoP's SRv6Locator block,
used for RFC 9800 NEXT-CSID compression. Unique within the PoP.
Values 0 and 255 are reserved. | | Maximum: 254
Minimum: 1
|
+| `nodeID` _integer_ | NodeID is this router's 16-bit slot within its PoP's SRv6Locator block,
used for RFC 9800 NEXT-CSID compression. Unique within the PoP.
The uSID carrier format reserves 0x0000 and 0xE000-0xFFFF (the latter is
Function space, not Node-ID space), leaving 0x0001-0xDFFF assignable. | | Maximum: 57343
Minimum: 1
|
| `listenPort` _integer_ | ListenPort is the TCP port this router listens on for incoming BGP
peer connections. Defaults to 179 (the IANA-assigned BGP port) if unset. | | Maximum: 65535
Minimum: 1
|