Eos designs facts

Variable Type Required Default Value Restrictions Description
id Integer
type String Required
platform String
is_deployed Boolean Required
serial_number String
mgmt_interface String
mgmt_ip String
mpls_lsr Boolean Required
evpn_multicast Boolean
loopback_ipv4_pool String
loopback_ipv6_pool String
uplink_ipv4_pool String
uplink_ipv6_pool String
downlink_pools List, items: Dictionary IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with uplink_ipv4_pool set on the downlink switch.
  - ipv4_pool String Format: ipv4_pool Comma separated list of prefixes (IPv4 address/Mask) or ranges (IPv4_address-IPv4_address).
IPv4 subnets used for links to downlink switches will be derived from this pool based on index the peer’s uplink interface’s index in ‘downlink_interfaces’.
    ipv6_pool String Format: ipv6_pool Comma separated list of prefixes (IPv6 address/Mask) or ranges (IPv6_address-IPv6_address).
IPv6 subnets used for links to downlink switches will be derived from this pool based on index the peer’s uplink interface’s index in ‘downlink_interfaces’.
    downlink_interfaces List, items: String List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool.
      - <str> String
bgp_as String
underlay_routing_protocol String Required
vtep_loopback_ipv4_pool String
inband_mgmt_subnet String
inband_mgmt_ipv6_subnet String
inband_mgmt_vlan Integer
inband_ztp Boolean
inband_ztp_vlan Integer
inband_ztp_lacp_fallback_delay Integer
dc_name String
group String
router_id String
inband_mgmt_ip String Used for fabric docs.
inband_mgmt_interface String Used for fabric docs.
pod String Required Used for fabric docs.
connected_endpoints_keys List, items: Dictionary Required List of connected_endpoints_keys in use on this device.
Used for fabric docs.
  - key String Required, Unique
    type String Type used for documentation.
    description String Description used for documentation.
port_profile_names List, items: Dictionary List of port_profiles configured - including the ones not in use.
Used for fabric docs.
  - profile String Required
    parent_profile String
mlag_peer String
mlag_port_channel_id Integer
mlag_interfaces List, items: String
  - <str> String
mlag_ip String
mlag_l3_ip String
mlag_switch_ids Dictionary The switch ids of both primary and secondary switches for a this node group.
  primary Integer Required
  secondary Integer Required
evpn_role String
mpls_overlay_role String
evpn_route_servers List, items: String For evpn clients the default value for EVPN Route Servers is the content of the uplink_switches variable set elsewhere.
For all other evpn roles there is no default.
  - <str> String
mpls_route_reflectors List, items: String List of inventory hostname acting as MPLS route-reflectors.
  - <str> String Inventory_hostname_of_mpls_route_reflectors.
overlay Dictionary
  peering_address String
  evpn_mpls Boolean Required
vtep_ip String
vtep_ipv6 String
max_parallel_uplinks Integer 1 Number of parallel links towards uplink switches.
Changing this value may change interface naming on uplinks (and corresponding downlinks).
Can be used to reserve interfaces for future parallel uplinks.
max_uplink_switches Integer Required
uplinks List, items: Dictionary Required List of uplinks with all parameters
These facts are leveraged by templates for this device when rendering uplinks
and by templates for peer devices when rendering downlinks
  - interface String Required
    peer String Required
    peer_interface String Required
    peer_type String Required
    peer_is_deployed Boolean Required
    peer_bgp_as String
    type String Required Valid Values:
- underlay_p2p
- underlay_l2
    speed String
    bfd Boolean
    peer_speed String
    ptp Dictionary Enable PTP on all infrastructure links.
      enable Boolean False
    mac_security Dictionary
      profile String Required
    underlay_multicast Boolean
    ipv6_enable Boolean
    prefix_length Integer
    ip_address String
    peer_ip_address String
    link_tracking_groups List, items: Dictionary
      - name String Required, Unique
        direction String Required Valid Values:
- upstream
- downstream
    peer_node_group String
    node_group String
    mlag Boolean
    peer_mlag Boolean
    channel_group_id Integer
    peer_channel_group_id Integer
    trunk_groups List, items: String
      - <str> String
    peer_trunk_groups List, items: String
      - <str> String
    vlans String
    native_vlan Integer
    short_esi String
    peer_short_esi String
    spanning_tree_portfast String Valid Values:
- edge
- network
    peer_spanning_tree_portfast String Valid Values:
- edge
- network
    sflow_enabled Boolean
    flow_tracking Dictionary Enable flow-tracking on all fabric uplinks.
      enabled Boolean False
      name String FLOW-TRACKER Flow tracker name as defined in flow_tracking_settings.
    inband_ztp_vlan Integer
    inband_ztp_lacp_fallback_delay Integer
    dhcp_server Boolean
    structured_config Dictionary Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”.
When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name=] for eos_cli_config_gen overrides the settings on the ethernet interface level.
When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name=] for eos_cli_config_gen overrides the settings on the port-channel interface level.
“uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level.
Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
    subinterfaces List, items: Dictionary
      - interface String Required, Unique
        peer_interface String Required
        vrf String Required
        encapsulation_dot1q_vlan Integer Required
        ipv6_enable Boolean
        prefix_length Integer
        ipv6_prefix_length Integer
        ip_address String
        ipv6_address String
        peer_ip_address String
        peer_ipv6_address String
        structured_config Dictionary Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”.
When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name=] for eos_cli_config_gen overrides the settings on the ethernet interface level.
When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name=] for eos_cli_config_gen overrides the settings on the port-channel interface level.
“uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level.
Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
uplink_peers List, items: String
  - <str> String
uplink_switch_vrfs List, items: String
  - <str> String
vlans String Required Compressed list of vlans to be defined on this switch after filtering network services.
The filter is based on filter.tenants, filter.tags but not filter.only_vlans_in_use.

Ex. “1-100, 201-202”

This excludes the optional “uplink_native_vlan” if that vlan is not used for anything else.
This is to ensure that native vlan is not necessarily permitted on the uplink trunk.
endpoint_vlans String Compressed list of vlans in use by endpoints connected to this switch, downstream switches or MLAG peer and it’s downstream switches.
local_endpoint_trunk_groups List, items: String List of trunk_groups in use by endpoints connected to this switch.
  - <str> String
endpoint_trunk_groups List, items: String List of trunk_groups in use by endpoints connected to this switch, downstream switches or MLAG peer and it’s downstream switches.
  - <str> String
wan_path_groups List, items: Dictionary List of path-groups used for the WAN configuration.
  - interfaces List, items: Dictionary
      - name String Required
        public_ip String
        connected_to_pathfinder Boolean Required
        wan_circuit_id String
    name String Required, Unique Path-group name.
    id Integer Required Path-group id.
Required until an auto ID algorithm is implemented.
    description String Additional information about the path-group for documentation purposes.
    ipsec Dictionary Configuration of IPSec at the path-group level.
      dynamic_peers Boolean True Enable IPSec for dynamic peers.
      static_peers Boolean True Enable IPSec for static peers.
    import_path_groups List, items: Dictionary List of path-groups to import in this path-group.
      - remote String Remote path-group to import.
        local String Optional, if not set, the path-group name is used as local.
    default_preference String preferred Preference value used when a preference is not given for a path-group in the wan_virtual_topologies.policies input or when
the path-group is used in an auto generated policy except if excluded_from_default_policy is set to true.<br><br>Valid values are 1-65535 | "preferred" | "alternate".<br><br>preferredis converted to priority 1.<br>alternate` is converted to priority 2.
    excluded_from_default_policy Boolean False When set to true, the path-group is excluded from AVD auto generated policies.
    dps_keepalive Dictionary Period between the transmission of consecutive keepalive messages, and failure threshold.
      interval String Interval in milliseconds. Valid values are 50-60000
      failure_threshold Integer 5 Min: 2
Max: 100
Failure threshold in number of lost keep-alive messages.
uplink_switch_interfaces List, items: String
  - <str> String
downlink_switches List, items: String
  - <str> String
evpn_route_server_clients List, items: String
  - <str> String
mpls_route_reflector_clients List, items: String
  - <str> String
id: <int>
type: <str; required>
platform: <str>
is_deployed: <bool; required>
serial_number: <str>
mgmt_interface: <str>
mgmt_ip: <str>
mpls_lsr: <bool; required>
evpn_multicast: <bool>
loopback_ipv4_pool: <str>
loopback_ipv6_pool: <str>
uplink_ipv4_pool: <str>
uplink_ipv6_pool: <str>

# IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with `uplink_ipv4_pool` set on the downlink switch.
downlink_pools:

    # Comma separated list of prefixes (IPv4 address/Mask) or ranges (IPv4_address-IPv4_address).
    # IPv4 subnets used for links to downlink switches will be derived from this pool based on index the peer's uplink interface's index in 'downlink_interfaces'.
  - ipv4_pool: <str>

    # Comma separated list of prefixes (IPv6 address/Mask) or ranges (IPv6_address-IPv6_address).
    # IPv6 subnets used for links to downlink switches will be derived from this pool based on index the peer's uplink interface's index in 'downlink_interfaces'.
    ipv6_pool: <str>

    # List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool.
    downlink_interfaces:
      - <str>
bgp_as: <str>
underlay_routing_protocol: <str; required>
vtep_loopback_ipv4_pool: <str>
inband_mgmt_subnet: <str>
inband_mgmt_ipv6_subnet: <str>
inband_mgmt_vlan: <int>
inband_ztp: <bool>
inband_ztp_vlan: <int>
inband_ztp_lacp_fallback_delay: <int>
dc_name: <str>
group: <str>
router_id: <str>

# Used for fabric docs.
inband_mgmt_ip: <str>

# Used for fabric docs.
inband_mgmt_interface: <str>

# Used for fabric docs.
pod: <str; required>

# List of connected_endpoints_keys in use on this device.
# Used for fabric docs.
connected_endpoints_keys: # required
  - key: <str; required; unique>

    # Type used for documentation.
    type: <str>

    # Description used for documentation.
    description: <str>

# List of port_profiles configured - including the ones not in use.
# Used for fabric docs.
port_profile_names:
  - profile: <str; required>
    parent_profile: <str>
mlag_peer: <str>
mlag_port_channel_id: <int>
mlag_interfaces:
  - <str>
mlag_ip: <str>
mlag_l3_ip: <str>

# The switch ids of both primary and secondary switches for a this node group.
mlag_switch_ids:
  primary: <int; required>
  secondary: <int; required>
evpn_role: <str>
mpls_overlay_role: <str>

# For evpn clients the default value for EVPN Route Servers is the content of the uplink_switches variable set elsewhere.
# For all other evpn roles there is no default.
evpn_route_servers:
  - <str>

# List of inventory hostname acting as MPLS route-reflectors.
mpls_route_reflectors:

    # Inventory_hostname_of_mpls_route_reflectors.
  - <str>
overlay:
  peering_address: <str>
  evpn_mpls: <bool; required>
vtep_ip: <str>
vtep_ipv6: <str>

# Number of parallel links towards uplink switches.
# Changing this value may change interface naming on uplinks (and corresponding downlinks).
# Can be used to reserve interfaces for future parallel uplinks.
max_parallel_uplinks: <int; default=1>
max_uplink_switches: <int; required>

# List of uplinks with all parameters
# These facts are leveraged by templates for this device when rendering uplinks
# and by templates for peer devices when rendering downlinks
uplinks: # required
  - interface: <str; required>
    peer: <str; required>
    peer_interface: <str; required>
    peer_type: <str; required>
    peer_is_deployed: <bool; required>
    peer_bgp_as: <str>
    type: <str; "underlay_p2p" | "underlay_l2"; required>
    speed: <str>
    bfd: <bool>
    peer_speed: <str>

    # Enable PTP on all infrastructure links.
    ptp:
      enable: <bool; default=False>
    mac_security:
      profile: <str; required>
    underlay_multicast: <bool>
    ipv6_enable: <bool>
    prefix_length: <int>
    ip_address: <str>
    peer_ip_address: <str>
    link_tracking_groups:
      - name: <str; required; unique>
        direction: <str; "upstream" | "downstream"; required>
    peer_node_group: <str>
    node_group: <str>
    mlag: <bool>
    peer_mlag: <bool>
    channel_group_id: <int>
    peer_channel_group_id: <int>
    trunk_groups:
      - <str>
    peer_trunk_groups:
      - <str>
    vlans: <str>
    native_vlan: <int>
    short_esi: <str>
    peer_short_esi: <str>
    spanning_tree_portfast: <str; "edge" | "network">
    peer_spanning_tree_portfast: <str; "edge" | "network">
    sflow_enabled: <bool>

    # Enable flow-tracking on all fabric uplinks.
    flow_tracking:
      enabled: <bool; default=False>

      # Flow tracker name as defined in flow_tracking_settings.
      name: <str; default="FLOW-TRACKER">
    inband_ztp_vlan: <int>
    inband_ztp_lacp_fallback_delay: <int>
    dhcp_server: <bool>

    # Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
    # When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
    # When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
    # "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
    # Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
    structured_config: <dict>
    subinterfaces:
      - interface: <str; required; unique>
        peer_interface: <str; required>
        vrf: <str; required>
        encapsulation_dot1q_vlan: <int; required>
        ipv6_enable: <bool>
        prefix_length: <int>
        ipv6_prefix_length: <int>
        ip_address: <str>
        ipv6_address: <str>
        peer_ip_address: <str>
        peer_ipv6_address: <str>

        # Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
        # When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
        # When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
        # "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
        # Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
        structured_config: <dict>
uplink_peers:
  - <str>
uplink_switch_vrfs:
  - <str>

# Compressed list of vlans to be defined on this switch after filtering network services.
# The filter is based on filter.tenants, filter.tags but not filter.only_vlans_in_use.
#
# Ex. "1-100, 201-202"
#
# This excludes the optional "uplink_native_vlan" if that vlan is not used for anything else.
# This is to ensure that native vlan is not necessarily permitted on the uplink trunk.
vlans: <str; required>

# Compressed list of vlans in use by endpoints connected to this switch, downstream switches or MLAG peer and it's downstream switches.
endpoint_vlans: <str>

# List of trunk_groups in use by endpoints connected to this switch.
local_endpoint_trunk_groups:
  - <str>

# List of trunk_groups in use by endpoints connected to this switch, downstream switches or MLAG peer and it's downstream switches.
endpoint_trunk_groups:
  - <str>

# List of path-groups used for the WAN configuration.
wan_path_groups:
  - interfaces:
      - name: <str; required>
        public_ip: <str>
        connected_to_pathfinder: <bool; required>
        wan_circuit_id: <str>

    # Path-group name.
    name: <str; required; unique>

    # Path-group id.
    # Required until an auto ID algorithm is implemented.
    id: <int; required>

    # Additional information about the path-group for documentation purposes.
    description: <str>

    # Configuration of IPSec at the path-group level.
    ipsec:

      # Enable IPSec for dynamic peers.
      dynamic_peers: <bool; default=True>

      # Enable IPSec for static peers.
      static_peers: <bool; default=True>

    # List of path-groups to import in this path-group.
    import_path_groups:

        # Remote path-group to import.
      - remote: <str>

        # Optional, if not set, the path-group `name` is used as local.
        local: <str>

    # Preference value used when a preference is not given for a path-group in the `wan_virtual_topologies.policies` input or when
    # the path-group is used in an auto generated policy except if `excluded_from_default_policy` is set to `true.
    #
    # Valid values are 1-65535 | "preferred" | "alternate".
    #
    # `preferred` is converted to priority 1.
    # `alternate` is converted to priority 2.
    default_preference: <str; default="preferred">

    # When set to `true`, the path-group is excluded from AVD auto generated policies.
    excluded_from_default_policy: <bool; default=False>

    # Period between the transmission of consecutive keepalive messages, and failure threshold.
    dps_keepalive:

      # Interval in milliseconds. Valid values are 50-60000 | "auto".
      #
      # When auto, the interval and failure_threshold are automatically determined based on
      # path state.
      interval: <str>

      # Failure threshold in number of lost keep-alive messages.
      failure_threshold: <int; 2-100; default=5>
uplink_switch_interfaces:
  - <str>
downlink_switches:
  - <str>
evpn_route_server_clients:
  - <str>
mpls_route_reflector_clients:
  - <str>