Skip to content

Managing Point-to-Point Links

A Point-to-Point Link (P2P link) models a direct routed connection between two switch interfaces. Unlike VLANs or overlay networks, a P2P link is purely layer-3: each end gets IP addresses and the link is brought up as a routed interface.

Common uses include:

  • WAN uplinks and peering connections
  • Connections between border switches and external routers
  • Inter-fabric links that carry routed traffic outside of EVPN overlays
TermDescription
Interface A / Interface BThe two switch ports connected by the link
Route DomainThe VRF the link belongs to. null = the default routing domain
Routing activationControls when interface IPs and VRF membership are pushed to the switches — default activates on deploy
Service statusordered from creation until the first successful deploy; active thereafter
Candidate configThe staged (proposed) configuration. Changes to /config are staged and applied on the next deploy
Terminal window
curl -X POST "https://<your-server>/api/v2/point-to-point-links" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"label": "border-leaf01-uplink",
"name": "Border Leaf 01 WAN Uplink",
"interfaceA": {
"networkDeviceId": 229,
"portId": 10
},
"interfaceB": {
"networkDeviceId": 300,
"portId": 5
},
"description": "Uplink from border leaf to WAN router",
"mtu": 9000,
"routeDomainId": null
}'
Terminal window
# List all P2P links
curl "https://<your-server>/api/v2/point-to-point-links" \
-H "Authorization: Bearer <API_KEY>"
# Filter by route domain
curl "https://<your-server>/api/v2/point-to-point-links?routeDomainId=5" \
-H "Authorization: Bearer <API_KEY>"
Terminal window
curl "https://<your-server>/api/v2/point-to-point-links/{id}" \
-H "Authorization: Bearer <API_KEY>"

Labels, names, annotations, and descriptions can be updated:

Terminal window
curl -X PATCH "https://<your-server>/api/v2/point-to-point-links/{id}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"name": "Updated WAN Uplink Name"
}'

The candidate config holds staged changes such as IP allocation strategies and static routes. These changes are not applied until the link is deployed.

Terminal window
# Get candidate config
curl "https://<your-server>/api/v2/point-to-point-links/{id}/config" \
-H "Authorization: Bearer <API_KEY>"
# Update candidate config
curl -X PATCH "https://<your-server>/api/v2/point-to-point-links/{id}/config" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"mtu": 1500
}'

Subnet allocation strategies define how IP addresses are assigned to the two ends of the link.

Terminal window
# Add an IPv4 subnet allocation strategy
curl -X POST "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/subnet-allocation-strategies" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"subnetPoolId": 3,
"prefixLength": 30
}'
# List IPv4 strategies
curl "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/subnet-allocation-strategies" \
-H "Authorization: Bearer <API_KEY>"
# Delete an IPv4 strategy
curl -X DELETE "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/subnet-allocation-strategies/{strategyId}" \
-H "Authorization: Bearer <API_KEY>"

IPv6 subnet allocation strategies follow the same pattern under /config/ipv6/subnet-allocation-strategies.

Static routes can be added to a P2P link candidate for either address family:

Terminal window
# Add a static route
curl -X POST "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/static-routes" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"prefix": "0.0.0.0/0",
"nextHop": "203.0.113.1"
}'
# List static routes
curl "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/static-routes" \
-H "Authorization: Bearer <API_KEY>"
# Delete a static route
curl -X DELETE "https://<your-server>/api/v2/point-to-point-links/{id}/config/ipv4/static-routes/{routeId}" \
-H "Authorization: Bearer <API_KEY>"

Use /config/ipv6/static-routes for IPv6 static routes.

Deletion is staged — it sets the candidate deployType to DELETE. The link is removed from the switches on the next deploy.

Terminal window
curl -X DELETE "https://<your-server>/api/v2/point-to-point-links/{id}" \
-H "Authorization: Bearer <API_KEY>"