forked from sonic-net/sonic-buildimage
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'msft_github/master'
* msft_github/master: [DHCP Relay]: Support Multiple VLANs (Separate DHCP Relay Agents, One Per VLAN) (sonic-net#999) [build]: sonic-utilities package depends on swsssdk; build as wheel and add build dependency (sonic-net#1011) Make swssconfig status FATAL when it fails (sonic-net#1009) [swss]: Update swss-common/sairedis/swss submodules (sonic-net#1008) [config-engine]: Fix bug multiple ports connecting to same neighbor (sonic-net#1005)
- Loading branch information
Showing
29 changed files
with
346 additions
and
167 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 67 additions & 0 deletions
67
dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
[supervisord] | ||
logfile_maxbytes=1MB | ||
logfile_backups=2 | ||
nodaemon=true | ||
|
||
[program:start.sh] | ||
command=/usr/bin/start.sh | ||
priority=1 | ||
autostart=true | ||
autorestart=false | ||
stdout_logfile=syslog | ||
stderr_logfile=syslog | ||
|
||
[program:rsyslogd] | ||
command=/usr/sbin/rsyslogd -n | ||
priority=2 | ||
autostart=false | ||
autorestart=false | ||
stdout_logfile=syslog | ||
stderr_logfile=syslog | ||
|
||
{# If our configuration has VLANs... #} | ||
{% if VLAN %} | ||
{# Count how many VLANs require a DHCP relay agent... #} | ||
{% set num_relays = { 'count': 0 } %} | ||
{% for vlan_name in VLAN %} | ||
{% if VLAN[vlan_name]['dhcp_servers'] %} | ||
{% set _dummy = num_relays.update({'count': num_relays.count + 1}) %} | ||
{% endif %} | ||
{% endfor %} | ||
{# If one or more of the VLANs require a DHCP relay agent... #} | ||
{% if num_relays.count > 0 %} | ||
[group:isc-dhcp-relay] | ||
programs= | ||
{%- set add_preceding_comma = { 'flag': False } -%} | ||
{%- for vlan_name in VLAN -%} | ||
{%- if VLAN[vlan_name]['dhcp_servers'] -%} | ||
{%- if add_preceding_comma.flag %},{% endif -%} | ||
{%- set _dummy = add_preceding_comma.update({'flag': True}) -%} | ||
isc-dhcp-relay-{{ vlan_name }} | ||
{%- endif %} | ||
{% endfor %} | ||
|
||
|
||
{# Create a program entry for each DHCP relay agent instance #} | ||
{% for vlan_name in VLAN -%} | ||
{%- if VLAN[vlan_name]['dhcp_servers'] -%} | ||
[program:isc-dhcp-relay-{{ vlan_name }}] | ||
command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -i {{ vlan_name }} | ||
{%- for (name, prefix) in INTERFACE -%} | ||
{%- if prefix | ipv4 %} -i {{ name }}{% endif -%} | ||
{%- endfor -%} | ||
{%- for (name, prefix) in PORTCHANNEL_INTERFACE -%} | ||
{%- if prefix | ipv4 %} -i {{ name }}{% endif -%} | ||
{%- endfor -%} | ||
{%- for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %} {{ dhcp_server }}{% endfor %} | ||
|
||
priority=3 | ||
autostart=false | ||
autorestart=false | ||
stdout_logfile=syslog | ||
stderr_logfile=syslog | ||
|
||
{% endif %} | ||
{% endfor %} | ||
{% endif %} | ||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Generate supervisord config file | ||
mkdir -p /etc/supervisor/conf.d/ | ||
sonic-cfggen -d -t /usr/share/sonic/templates/docker-dhcp-relay.supervisord.conf.j2 > /etc/supervisor/conf.d/docker-dhcp-relay.supervisord.conf | ||
|
||
# Generate the script that waits for all interfaces to come up and make it executable | ||
sonic-cfggen -d -t /usr/share/sonic/templates/wait_for_intf.sh.j2 > /usr/bin/wait_for_intf.sh | ||
chmod +x /usr/bin/wait_for_intf.sh | ||
|
||
# Generate port name-alias map for isc-dhcp-relay to parse. Each line contains one | ||
# name-alias pair of the form "<name> <alias>" | ||
sonic-cfggen -d --var-json "PORT" | python -c "import sys, json, os; [sys.stdout.write('%s %s\n' % (k, v['alias'] if 'alias' in v else k)) for (k, v) in json.load(sys.stdin).iteritems()]" > /tmp/port-name-alias-map.txt | ||
|
||
# The docker container should start this script as PID 1, so now that supervisord is | ||
# properly configured, we exec supervisord so that it runs as PID 1 for the | ||
# duration of the container's lifetime | ||
exec /usr/bin/supervisord |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,13 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Create isc-dhcp-relay config file | ||
sonic-cfggen -d -t /usr/share/sonic/templates/isc-dhcp-relay.j2 > /etc/default/isc-dhcp-relay | ||
|
||
# Remove stale rsyslog PID file if it exists | ||
rm -f /var/run/rsyslogd.pid | ||
|
||
# Start rsyslog | ||
supervisorctl start rsyslogd | ||
|
||
# Wait for all interfaces to come up before starting the DHCP relay | ||
sonic-cfggen -d -t /usr/share/sonic/templates/wait_for_intf.sh.j2 > /usr/bin/wait_for_intf.sh | ||
chmod +x /usr/bin/wait_for_intf.sh | ||
# Wait for all interfaces to come up before starting the DHCP relay agent(s) | ||
/usr/bin/wait_for_intf.sh | ||
|
||
# Start the DHCP relay | ||
supervisorctl start isc-dhcp-relay | ||
# Start the DHCP relay agent(s) | ||
supervisorctl start isc-dhcp-relay:* |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
{% for neighbor in DEVICE_NEIGHBOR %} | ||
configure ports {{ DEVICE_NEIGHBOR[neighbor]['local_port'] }} lldp portidsubtype local {{ PORT[DEVICE_NEIGHBOR[neighbor]['local_port']]['alias'] }} description {{ neighbor }}:{{ DEVICE_NEIGHBOR[neighbor]['port'] }} | ||
{% for local_port in DEVICE_NEIGHBOR %} | ||
configure ports {{ local_port }} lldp portidsubtype local {{ PORT[local_port]['alias'] }} description {{ DEVICE_NEIGHBOR[local_port]['name'] }}:{{ DEVICE_NEIGHBOR[local_port]['port'] }} | ||
{% endfor %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
# sonic utilities package | ||
|
||
SONIC_UTILS = python-sonic-utilities_1.1-1_all.deb | ||
$(SONIC_UTILS)_SRC_PATH = $(SRC_PATH)/sonic-utilities | ||
SONIC_PYTHON_STDEB_DEBS += $(SONIC_UTILS) | ||
SONIC_UTILITIES = sonic_utilities-1.1-py2-none-any.whl | ||
$(SONIC_UTILITIES)_SRC_PATH = $(SRC_PATH)/sonic-utilities | ||
$(SONIC_UTILITIES)_PYTHON_VERSION = 2 | ||
$(SONIC_UTILITIES)_DEPENDS += $(SWSSSDK_PY2) | ||
SONIC_PYTHON_WHEELS += $(SONIC_UTILITIES) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.