blob: 566116b29f7c895d2109c4957872f00abff27b95 [file] [log] [blame]
# Created by platform-install: interface-config/templates/fabric.cfg.j2
{% for node in physical_node_list if node.name == ansible_hostname %}
{% if fabric_net_interfaces %}
# physical network members of fabricbond
{% for fab_int in fabric_net_interfaces %}
auto {{ fab_int }}
iface {{ fab_int }} inet manual
pre-up ip link set {{ fab_int }} master fabricbond
bond-master fabricbond
bond-primary {{ fabric_net_interfaces | join(' ') }}
post-down ip link set dev {{ fab_int }} nomaster
{% endfor %}
{% endif %}
{% if node.name == headnode %}
# fabricbond of physical interfaces on head node
auto fabricbond
iface fabricbond inet manual
pre-up ip link add fabricbond type bond
pre-up ip link set fabricbond up
bond-miimon 100
bond-slaves none
bond-mode active-backup
post-down ip link del fabricbond
# fabricbridge
{% set vtn_ip = ( vtn_net_public_cidr | ipaddr(node.ipv4_last_octet) | ipaddr('address')) %}
auto fabricbridge
iface fabricbridge inet static
pre-up ip link add fabricbridge type bridge
bridge_ports fabricbond
address {{ vtn_ip }}
network {{ vtn_net_public_cidr | ipaddr('network') }}
netmask {{ vtn_net_public_cidr | ipaddr('netmask') }}
broadcast {{ vtn_net_public_cidr | ipaddr('broadcast') }}
hwaddress ether {{ fabric_gateway_hwaddr }}
post-down ip link del fabricbridge
{% if use_addresspool_vsg %}
# vSG public gateway
{% set ap_vsg_ip = ( addresspool_vsg_cidr | ipaddr(node.ipv4_last_octet) | ipaddr('address')) %}
auto fabricbridge:0
iface fabricbridge:0 inet static
address {{ ap_vsg_ip }}
network {{ addresspool_vsg_cidr | ipaddr('network') }}
netmask {{ addresspool_vsg_cidr | ipaddr('netmask') }}
broadcast {{ addresspool_vsg_cidr | ipaddr('broadcast') }}
{% endif %}
{% if use_addresspool_public %}
# public network gateway
{% set ap_pub_ip = ( addresspool_public_cidr | ipaddr(node.ipv4_last_octet) | ipaddr('address')) %}
auto fabricbridge:1
iface fabricbridge:1 inet static
address {{ ap_pub_ip }}
network {{ addresspool_public_cidr | ipaddr('network') }}
netmask {{ addresspool_public_cidr | ipaddr('netmask') }}
broadcast {{ addresspool_public_cidr | ipaddr('broadcast') }}
{% endif %}
{% else %}
# Compute nodes only have a fabricbond, which is put into br-int by VTN
{% set vtn_ip = ( vtn_net_public_cidr | ipaddr(node.ipv4_last_octet) | ipaddr('address')) %}
auto fabricbond
iface fabricbond inet static
pre-up ip link add fabricbond type bond
pre-up ip link set fabricbond up
address {{ vtn_ip }}
network {{ vtn_net_public_cidr | ipaddr('network') }}
netmask {{ vtn_net_public_cidr | ipaddr('netmask') }}
broadcast {{ vtn_net_public_cidr | ipaddr('broadcast') }}
hwaddress ether {{ ( vtn_net_public_hwaddr_prefix ~ ( vtn_ip | ip4_hex )) | hwaddr('linux') }}
bond-miimon 100
bond-slaves none
bond-mode active-backup
post-down ip link del fabricbond
{% endif %}
{% endfor %}