Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MACsec container and wpa_supplicant component #5700

Merged
merged 30 commits into from
Jan 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
91262a8
Add compile configuration to support wpa supplicant 2.9
Pterosaur Apr 23, 2020
e7e5013
Fix : Duplicate build wpasupplicant
Pterosaur Apr 23, 2020
32a6a0e
Add docker base buster
Pterosaur Apr 26, 2020
a5f76a2
Merge branch 'remote master' of https://github.com/Azure/sonic-buildi…
Pterosaur Jun 2, 2020
e6ccfd7
Reset useless file
Pterosaur Jun 2, 2020
982f0c5
add macsec Docker
Pterosaur Jun 3, 2020
4e1196b
change wpasupplicant file mode
Pterosaur Jun 3, 2020
82e88ce
change file mode
Pterosaur Jun 3, 2020
ce25799
Add wpa dependencies in build environment
Pterosaur Jun 3, 2020
91607dc
Add wpa dependencies in build environment
Pterosaur Jun 3, 2020
749ab4d
Remove useless spaces
Pterosaur Jun 3, 2020
bdcf0be
Merge branch 'master' of https://github.com/Azure/sonic-buildimage in…
Pterosaur Jul 22, 2020
4b19914
Merge master of https://github.com/Azure/sonic-buildimage
Pterosaur Aug 20, 2020
d68bd32
Use SONiC libnl
Pterosaur Aug 20, 2020
7bc8230
temp_fix: Checkout to SONiC Plugin branch
Pterosaur Aug 21, 2020
827cab4
Merge branch 'master' of https://github.com/Azure/sonic-buildimage in…
Pterosaur Sep 15, 2020
5aef671
Merge branch 'master' of https://github.com/Azure/sonic-buildimage in…
Pterosaur Sep 16, 2020
fc95f94
Merge branch 'master' into macsec
Pterosaur Oct 14, 2020
e9e0b89
change file mode
Pterosaur Oct 14, 2020
8890750
Add wpa_supplicant SONiC plugin patch
Pterosaur Oct 22, 2020
7d69ee1
Change debian wpa_supplicant to sonic_hostap
Pterosaur Nov 3, 2020
6ad9245
Merge branch 'master' into macsec
Pterosaur Nov 3, 2020
5dccaf2
formmat indent
Pterosaur Nov 3, 2020
d801a51
Fix compile error
Pterosaur Nov 4, 2020
9d82e31
temp fix wpa supplicant compile bug
Pterosaur Nov 9, 2020
82fbfc7
Merge branch 'master' into macsec
Pterosaur Nov 9, 2020
7b969de
Change wpa repo source from debian to Azure/sonic-wpa-supplicant
Pterosaur Dec 7, 2020
7169af2
Add sonic_wpa_supplicant as submodule
Pterosaur Dec 23, 2020
1a0595b
[testonly]: Set shell as verbose mode
Pterosaur Jan 1, 2021
992ae50
Fix dep files
Pterosaur Jan 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,6 @@
[submodule "src/sonic-mgmt-common"]
path = src/sonic-mgmt-common
url = https://github.com/Azure/sonic-mgmt-common.git
[submodule "src/wpasupplicant/sonic-wpa-supplicant"]
path = src/wpasupplicant/sonic-wpa-supplicant
url = https://github.com/Azure/sonic-wpa-supplicant.git
30 changes: 30 additions & 0 deletions dockers/docker-macsec/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
FROM docker-config-engine-buster

ARG docker_container_name
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf

## Make apt-get non-interactive
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update

{% if docker_macsec_debs.strip() -%}
# Copy locally-built Debian package dependencies
{{ copy_files("debs/", docker_macsec_debs.split(' '), "/debs/") }}

# Install locally-built Debian packages and implicitly install their dependencies
{{ install_debian_packages(docker_macsec_debs.split(' ')) }}
{%- endif %}

RUN apt-get clean -y && \
apt-get autoclean -y && \
apt-get autoremove -y && \
rm -rf /debs

COPY ["start.sh", "/usr/bin/"]
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
COPY ["critical_processes", "/etc/supervisor"]

# ENTRYPOINT ["/usr/bin/supervisord"]
Empty file.
2 changes: 2 additions & 0 deletions dockers/docker-macsec/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env bash

Empty file.
11 changes: 11 additions & 0 deletions rules/docker-macsec.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

DPATH := $($(DOCKER_MACSEC)_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/docker-macsec.mk rules/docker-macsec.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(DPATH))

$(DOCKER_MACSEC)_CACHE_MODE := GIT_CONTENT_SHA
$(DOCKER_MACSEC)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(DOCKER_MACSEC)_DEP_FILES := $(DEP_FILES)

$(eval $(call add_dbg_docker,$(DOCKER_MACSEC),$(DOCKER_MACSEC_DBG)))
32 changes: 32 additions & 0 deletions rules/docker-macsec.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# docker image for macsec agent

DOCKER_MACSEC_STEM = docker-macsec
DOCKER_MACSEC = $(DOCKER_MACSEC_STEM).gz
DOCKER_MACSEC_DBG = $(DOCKER_MACSEC_STEM)-$(DBG_IMAGE_MARK).gz

$(DOCKER_MACSEC)_PATH = $(DOCKERS_PATH)/$(DOCKER_MACSEC_STEM)

$(DOCKER_MACSEC)_DEPENDS += $(SWSS) $(WPASUPPLICANT) $(REDIS_TOOLS) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3)
$(DOCKER_MACSEC)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS)
$(DOCKER_MACSEC)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG)
$(DOCKER_MACSEC)_DBG_DEPENDS += $(WPASUPPLICANT_DBG)

$(DOCKER_MACSEC)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)

$(DOCKER_MACSEC)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)

SONIC_DOCKER_IMAGES += $(DOCKER_MACSEC)
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_MACSEC)
SONIC_BUSTER_DOCKERS += $(DOCKER_MACSEC)

SONIC_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG)
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG)
SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_MACSEC_DBG)

$(DOCKER_MACSEC)_CONTAINER_NAME = macsec
$(DOCKER_MACSEC)_RUN_OPT += --privileged -t
$(DOCKER_MACSEC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
$(DOCKER_MACSEC)_RUN_OPT += -v /host/warmboot:/var/warmboot

# $(DOCKER_MACSEC)_BASE_IMAGE_FILES += macsecctl:/usr/bin/macsecctl
$(DOCKER_MACSEC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
16 changes: 16 additions & 0 deletions rules/wpasupplicant.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

SPATH := $($(WPASUPPLICANT)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/wpasupplicant.mk rules/wpasupplicant.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
# Account files under the src/wpasupplicant/ except submodule directory.
DEP_FILES += $(shell git ls-files $(SPATH) | grep -Ev 'sonic-wpa-supplicant')

# Account for source files under the sonic-wpa-supplicant submodule directory as well.
WPASUPPLICANT_SPATH := $(SPATH)/sonic-wpa-supplicant
SMDEP_FILES := $(addprefix $(WPASUPPLICANT_SPATH)/,$(shell cd $(WPASUPPLICANT_SPATH) && git ls-files))

$(WPASUPPLICANT)_CACHE_MODE := GIT_CONTENT_SHA
$(WPASUPPLICANT)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(WPASUPPLICANT)_DEP_FILES := $(DEP_FILES)
$(WPASUPPLICANT)_SMDEP_FILES := $(SMDEP_FILES)
$(WPASUPPLICANT)_SMDEP_PATHS := $(WPASUPPLICANT_SPATH)
19 changes: 19 additions & 0 deletions rules/wpasupplicant.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# wpa package

WPASUPPLICANT_VERSION = 2.9.0-14

export WPASUPPLICANT_VERSION

WPASUPPLICANT = wpasupplicant_$(WPASUPPLICANT_VERSION)_$(CONFIGURED_ARCH).deb
$(WPASUPPLICANT)_SRC_PATH = $(SRC_PATH)/wpasupplicant
$(WPASUPPLICANT)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBNL3_DEV) $(LIBNL_GENL3_DEV) $(LIBNL_ROUTE3_DEV)
$(WPASUPPLICANT)_RDEPENDS += $(LIBSWSSCOMMON) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3)
SONIC_MAKE_DEBS += $(WPASUPPLICANT)

WPASUPPLICANT_DBG = wpasupplicant-dbgsym_$(WPASUPPLICANT_VERSION)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(WPASUPPLICANT),$(WPASUPPLICANT_DBG)))

# The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list}
# are archived into debug one image to facilitate debugging.
#
DBG_SRC_ARCHIVE += wpasupplicant
19 changes: 18 additions & 1 deletion sonic-slave-buster/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,24 @@ RUN apt-get update && apt-get install -y \
libxml2-utils \
xsltproc \
python-lxml \
libexpat1-dev
libexpat1-dev \
# For WPA supplication
qtbase5-dev \
aspell-en \
libhiredis-dev \
libnl-3-dev \
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We build our own libnl3 and libhiredis. Please depend on them instead of pre-install the vanilla ones in sonic-slave.

swig3.0 \
libpython2.7-dev \
libssl-dev \
lguohan marked this conversation as resolved.
Show resolved Hide resolved
dbus \
libdbus-1-dev \
libdbus-glib-1-2 \
libdbus-glib-1-dev \
libreadline-dev \
libncurses5-dev \
libpcsclite-dev \
docbook-to-man \
docbook-utils

## Config dpkg
## install the configuration file if it’s currently missing
Expand Down
17 changes: 17 additions & 0 deletions src/wpasupplicant/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.ONESHELL:
SHELL = /bin/bash
.SHELLFLAGS += -e

MAIN_TARGET = wpasupplicant_$(WPASUPPLICANT_VERSION)_$(CONFIGURED_ARCH).deb
DERIVED_TARGETS = wpasupplicant-dbgsym_$(WPASUPPLICANT_VERSION)_$(CONFIGURED_ARCH).deb

$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
# Clone wpa repo
pushd ./sonic-wpa-supplicant
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS)
popd

# Move the newly-built .deb packages to the destination directory
mv $(DERIVED_TARGETS) $* $(DEST)/

$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
1 change: 1 addition & 0 deletions src/wpasupplicant/sonic-wpa-supplicant
Submodule sonic-wpa-supplicant added at 288cca