1d16a37d48
* [DHCP Relay]: Support new <DhcpRelays> minigraph tag; support multiple VLANs * Don't start dhcrelay in quiet mode so as to get startup output in syslog * Update sonic-cfggen tests to support new '<DhcpRelays>' tag * <DhcpRelays> tag is only present for VLANs which require a DHCP relay agent -- only parse if present * Don't attempt to configure a DHCP relay agent for VLANs without specified DHCP servers * Modify to work with Taoyu's minigraph/DB changes (#942) * Reduce number of DHCP servers in sonic-cfggen unit tests from 4 to 2 * Remove isc-dhcp-relay sample output file from sonic-cfggen test, as we no longer generate that file * Update Option 82 isc-dhcp-relay patch to load all interface name-alias maps into memory once at start instead of calling sonic-cfggen on each packet we relay * Remove executable permission from Jinja2 template * Set max hop count to 1 so that DHCP relay will only relay packets with a hop count of zero * Replace tabs with spaces * Modify overlooked sonic-cfggen call, use Config DB instead of minigraph * Also ensure > 1 VLAN requires a DHCP relay agent before outputting to template * Generate port name-alias map file using sonic-cfggen and parse that in lieu of parsing port_config.ini directly * No longer drop packets with hop count > 0; Instead, drop packets which already contain agent info
28 lines
654 B
Django/Jinja
28 lines
654 B
Django/Jinja
#!/usr/bin/env bash
|
|
|
|
function wait_until_iface_exists
|
|
{
|
|
IFACE=$1
|
|
|
|
echo "Waiting for interface ${IFACE}..."
|
|
|
|
# Wait for the interface to come up (i.e., 'ip link show' returns 0)
|
|
until ip link show $IFACE > /dev/null 2>&1; do
|
|
sleep 1
|
|
done
|
|
|
|
echo "Interface ${IFACE} is created"
|
|
}
|
|
|
|
|
|
# Wait for all interfaces to come up before starting the DHCP relay
|
|
{% for (name, prefix) in INTERFACE %}
|
|
wait_until_iface_exists {{ name }}
|
|
{% endfor %}
|
|
{% for (name, prefix) in VLAN_INTERFACE %}
|
|
wait_until_iface_exists {{ name }}
|
|
{% endfor %}
|
|
{% for (name, prefix) in PORTCHANNEL_INTERFACE %}
|
|
wait_until_iface_exists {{ name }}
|
|
{% endfor %}
|