#!/bin/bash
nmcli general hostname man2-li-osnova-207-010
nmcli -f UUID conn | awk '!/UUID/{print"nmcli con del "$1}' | sh

# vrf interfaces
nmcli connection add con-name internet ifname internet type vrf table 1002 ipv4.method disabled ipv6.method disabled
nmcli connection add con-name mgmt ifname mgmt type vrf table 1001 ipv4.method disabled ipv6.method disabled

# ethernet interfaces
nmcli connection add con-name eno1 ifname eno1 type ethernet ipv4.method auto ipv6.method link-local master mgmt mtu 1500
nmcli connection add con-name eno2 ifname eno2 type ethernet ipv4.method manual ipv4.addresses 10.30.65.56/31 ipv4.gateway 10.30.65.57 ipv4.dns "1.1.1.1 10.10.201.77 10.11.199.70"  ipv6.method link-local master mgmt mtu 1500
nmcli connection add con-name uplink1 ifname uplink1 type ethernet ipv4.method disabled ipv6.method link-local  mtu 9216
nmcli connection add con-name uplink2 ifname uplink2 type ethernet ipv4.method disabled ipv6.method link-local  mtu 9216
nmcli connection add con-name uplink3 ifname uplink3 type ethernet ipv4.method disabled ipv6.method link-local  mtu 9216
nmcli connection add con-name uplink4 ifname uplink4 type ethernet ipv4.method disabled ipv6.method link-local  mtu 9216

# dummy interfaces
nmcli connection add ifname mgmt_lo con-name mgmt_lo type dummy ipv6.method disabled ipv4.method manual ipv4.addresses 10.30.74.14/32 mtu 9000
nmcli connection add ifname underlay-lo con-name underlay-lo type dummy ipv6.method disabled ipv4.method manual ipv4.addresses 10.24.32.14/32 mtu 9216

# bridges
nmcli connection add con-name br-l3vni ifname br-l3vni type bridge bridge.vlan-default-pvid 0 bridge.vlan-filtering yes bridge.vlans 1000 ipv4.method disabled ipv6.method disabled stp no mtu 9216
nmcli connection add con-name br-provider ifname br-provider type bridge bridge.vlan-default-pvid 0 bridge.vlan-filtering yes bridge.vlans 2100 ipv4.method disabled ipv6.method disabled stp no mtu 9216

# veth pairs
nmcli connection add con-name veth-linux ifname veth-linux master br-provider bridge-port.vlans 2100,3301 type veth veth.peer veth-ovs ethernet.mtu 9216 connection.autoconnect yes
sleep 5
nmcli connection up veth-linux

# vlan interfaces
nmcli connection add con-name br-l3vni.1000 ifname br-l3vni.1000 type vlan id 1000 dev br-l3vni  ipv4.method disabled  ipv6.method disabled  master internet  mtu 9216
nmcli connection add con-name br-prov.2100 ifname br-prov.2100 type vlan id 2100 dev br-provider  ipv4.method disabled  ipv6.method disabled  master internet  mtu 1500
nmcli connection add con-name uplink1.4093 ifname uplink1.4093 type vlan id 4093 dev uplink1  ipv4.method manual ipv4.addresses 10.30.64.42/31  ipv6.method disabled  mtu 9000
nmcli connection add con-name uplink2.4093 ifname uplink2.4093 type vlan id 4093 dev uplink2  ipv4.method manual ipv4.addresses 10.30.64.170/31  ipv6.method disabled  mtu 9000
nmcli connection add con-name uplink3.4093 ifname uplink3.4093 type vlan id 4093 dev uplink3  ipv4.method manual ipv4.addresses 10.30.64.44/31  ipv6.method disabled  mtu 9000
nmcli connection add con-name uplink4.4093 ifname uplink4.4093 type vlan id 4093 dev uplink4  ipv4.method manual ipv4.addresses 10.30.64.172/31  ipv6.method disabled  mtu 9000

# vxlan interfaces
nmcli connection add ifname vni102100 con-name vni102100 type vxlan vxlan.destination-port 4789 vxlan.learning off vxlan.local 10.24.32.14 vxlan.parent underlay-lo vxlan.id 102100 master br-provider bridge-port.vlans '2100 pvid untagged' mtu 9166
nmcli connection add ifname vni500002 con-name vni500002 type vxlan vxlan.destination-port 4789 vxlan.learning off vxlan.local 10.24.32.14 vxlan.parent underlay-lo vxlan.id 500002 master br-l3vni bridge-port.vlans '1000 pvid untagged' mtu 9166
nmcli connection add ifname vni503301 con-name vni503301 type vxlan vxlan.destination-port 4789 vxlan.learning off vxlan.local 10.24.32.14 vxlan.parent underlay-lo vxlan.id 503301 master br-provider bridge-port.vlans '3301 pvid untagged' mtu 9166

nmcli connection down br-l3vni.1000 && nmcli connection up br-l3vni.1000
nmcli connection down br-prov.2100 && nmcli connection up br-prov.2100

# fhrp groups
nmcli connection modify br-prov.2100 +ipv4.addresses 174.127.94.1/23 ipv4.method manual && nmcli device reapply br-prov.2100
