SD-WAN service
The SD-WAN service models a customer's SD-WAN overlay across one or more
sites. Each site has a dedicated edge device (a per-site DcimDevice
created automatically by the generator). The default vendor is Cisco
Viptela (cEdge / IOS-XE SD-WAN); Versa Networks VOS is available as an
alternate.
For field-level schema details see schema-reference.
User flow​
Step-by-step​
-
Catalog form — Operator picks vendor (Viptela / Versa), topology (hub-spoke / full-mesh), and lists one site per location with a LAN subnet.
-
Branch + objects — Catalog allocates a
service_idfromsdwan_id_pool, opens a feature branch, writesServiceSdwanandServiceSdwanSiterows, and adds the service to thesdwansgroup. -
Generator —
SdwanGeneratorfires automatically on group membership. For each site it creates one edgeDcimDevice(<service>-<site>-edge) with the vendor's platform / device type / manufacturer, adds the device to the vendor-specific edge group (sdwan_viptela_edgesorsdwan_versa_edges), allocates a LAN address from the site's subnet, and flips both site and service status toactive. -
Artifacts — Infrahub renders one configuration per edge via the matching transform (
sdwan_viptelaorsdwan_versa). -
Proposed Change — Reviewable diff in the UI; merging promotes the service to
main.
Schema shape​
The shape parallels ServiceL3Vpn:
ServiceSdwan— name,service_id,vendor,topology, tenant, sites.ServiceSdwanSite— name,role(hub / spoke / branch),location,lan_subnet,lan_address,sdwan_edge.
Vendor differences​
| Aspect | Viptela (cEdge) | Versa (FlexVNF) |
|---|---|---|
| Platform | cisco_viptela | versa_flexvnf |
| Device type | cEdge-1000 | FlexVNF-200 |
| Edge group | sdwan_viptela_edges | sdwan_versa_edges |
| Artifact definition | sdwan-viptela-config | sdwan-versa-config |
| Configuration flavor | IOS-XE SD-WAN CLI (system / sdwan / vpn N) | Versa VOS CLI (set orgs org-services …) |
Checks​
sdwan_id_overlap— no two services shareservice_id. Safety net behind the pool.sdwan_site_subnet— no two sites within the same service have overlapping LAN subnets.
Known gaps​
- No SD-WAN controllers modelled — vManage / vSmart / vBond and Versa Director / Analytics are out of scope for v1.
- No transport circuits — edges have only a LAN-side address; no MPLS-vs-Internet-vs-LTE distinction.
- No overlay tunnels or BGP in rendered configs — templates emit the
intent (system identity,
vpn 1LAN block, organization name) but peer-site lists are comments only. - No containerlab support — the
clab-mpls-topologyartifact stays MPLS-only. SD-WAN edges would require adata.ServiceSdwanSite.edgesloop in the clab template and a newlinuxCE per SD-WAN site.