OrgsEVPN Topologies

createOrgEvpnTopology

POST
/api/v1/orgs/{org_id}/evpn_topologies

While all the evpn_id / downlink_ips can be specified by hand, the easiest way is to call the build_vpn_topology API, allowing you to examine the diff, and update it yourself. You can also simply call it with overwrite=true which will apply the updates for you.

Notes:

  1. You can use core / distribution / access to create a CLOS topology
  2. You can also use core / distribution to form a 2-tier EVPN topology where ESI-Lag is configured distribution to connect to access switches
  3. In a small/medium campus, collapsed-core can be used where core switches are the inter-connected to do EVPN
  4. The API uses a few pre-defined parameters and best-practices to generate the configs. It can be customized by using evpn_options in Site Setting / Network Template. (e.g. a different subnet for the underlay)

Collapsed Core

In a small-medium campus, EVPN can also be enabled only at the core switches (up to 4) by assigning all participating switches with collapsed-core role. When there are more than 2 switches, a ring-like topology will be formed.

ESI-Lag

If the access switches does not have EVPN support, you can take advantage of EVPN by setting up ESI-Lag on distribution switches

Leaf / Access / Collapsed-Core

For leaf nodes in a EVPN topology, you’d have to configure the IPs for networks that would participate in EVPN. Optionally, VRFs to isolate traffic from one tenant versus another

Authorization

Authorization<token>

Preferred authentication method for automation and integrations. Send the API token in the HTTP Authorization header.

Format: Authorization: Token {apitoken}

Notes:

  • An API token generated for a specific admin has the same privileges as that admin
  • An API token is automatically removed if it is not used for more than 90 days
  • SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed.

In: header

Path Parameters

org_id*string
Formatuuid

Request Body

application/json

EVPN topology create or update payload

evpn_options?

Generation options applied to the EVPN topology

name?string

Display name for the EVPN topology

overwrite?boolean

Whether to apply generated EVPN configuration changes automatically

pod_names?

Property key is the pod number

switch_configs?

Per-switch configuration overrides included in the EVPN topology

switches*array<>

Topology member switches, roles, and links

Response Body

curl -X POST "https://example.com/api/v1/orgs/000000ab-00ab-00ab-00ab-0000000000ab/evpn_topologies" \  -H "Content-Type: application/json" \  -d '{    "name": "CC",    "pod_names": {      "1": "default",      "2": "default"    },    "switches": [      {        "mac": "5c5b35000003",        "role": "collapsed-core"      },      {        "mac": "5c5b35000004",        "role": "collapsed-core"      }    ]  }'
{  "id": "9197ec96-4c8d-529f-c595-035895e688b2",  "name": "CC",  "overwrite": true,  "pod_names": {    "1": "default",    "2": "default"  },  "switches": [    {      "deviceprofile_id": "6a1deab1-96df-4fa2-8455-d5253f943d06",      "downlink_ips": [        "10.255.240.6",        "10.255.240.8"      ],      "downlinks": [        "5c5b35000007",        "5c5b35000008"      ],      "esilaglinks": [        "5c5b3500000f"      ],      "evpn_id": 1,      "mac": "5c5b35000003",      "model": "QFX10002-36Q",      "role": "collapsed-core",      "site_id": "1916d52a-4a90-11e5-8b45-1258369c38a9",      "uplinks": [        "5c5b35000005",        "5c5b35000006"      ]    }  ]}