From b7ad7052bd4254a2773ca175e63e48ad8ff16b72 Mon Sep 17 00:00:00 2001 From: Tan Shen Joon Date: Fri, 8 Jun 2018 10:58:18 +0800 Subject: [PATCH] convert bridge creation to service update to systemd config files so that the bridge will be up when systemd-networkd is started. Signed-off-by: Tan Shen Joon Reviewed-by: Jack Ren --- devicemodel/samples/nuc/bridge.sh | 53 ------------------------------- tools/Makefile | 10 ++++-- tools/acrnbridge/Makefile | 18 +++++++++++ tools/acrnbridge/acrn.netdev | 3 ++ tools/acrnbridge/acrn.network | 5 +++ tools/acrnbridge/acrn_tap0.netdev | 3 ++ tools/acrnbridge/eth.network | 5 +++ 7 files changed, 42 insertions(+), 55 deletions(-) delete mode 100755 devicemodel/samples/nuc/bridge.sh create mode 100644 tools/acrnbridge/Makefile create mode 100644 tools/acrnbridge/acrn.netdev create mode 100644 tools/acrnbridge/acrn.network create mode 100644 tools/acrnbridge/acrn_tap0.netdev create mode 100644 tools/acrnbridge/eth.network diff --git a/devicemodel/samples/nuc/bridge.sh b/devicemodel/samples/nuc/bridge.sh deleted file mode 100755 index 063844822..000000000 --- a/devicemodel/samples/nuc/bridge.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# Instructions to create systemd-networkd configuration files: - -if [ ! -e /etc/systemd/network ]; then - mkdir -p /etc/systemd/network - - # /etc/systemd/network/acrn.network - cat </etc/systemd/network/acrn.network -[Match] -Name=e* - -[Network] -Bridge=acrn-br0 -EOF - - - # /etc/systemd/network/acrn.netdev - cat </etc/systemd/network/acrn.netdev -[NetDev] -Name=acrn-br0 -Kind=bridge -EOF - - # /etc/systemd/network/eth.network - cat </etc/systemd/network/eth.network -[Match] -Name=acrn-br0 - -[Network] -DHCP=ipv4 -EOF - - # need to mask 80-dhcp.network and 80-virtual.network - ln -s /dev/null /etc/systemd/network/80-dhcp.network - ln -s /dev/null /etc/systemd/network/80-virtual.network - - # should get specifc list of taps - # /etc/systemd/network/acrn_tap0.netdev - cat </etc/systemd/network/acrn_tap0.netdev -[NetDev] -Name=acrn_tap0 -Kind=tap -EOF - - # restart systemd-network to create the devices - # and bind network address to the bridge - systemctl restart systemd-networkd -fi - -# add tap device under the bridge -ifconfig acrn_tap0 up -brctl addif acrn-br0 acrn_tap0 diff --git a/tools/Makefile b/tools/Makefile index 1c8d2868a..6f6aa644f 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,8 +1,8 @@ T := $(CURDIR) OUT_DIR ?= $(T)/build -.PHONY: all acrn-crashlog acrnlog acrn-manager acrntrace -all: acrn-crashlog acrnlog acrn-manager acrntrace +.PHONY: all acrn-crashlog acrnlog acrn-manager acrntrace acrnbridge +all: acrn-crashlog acrnlog acrn-manager acrntrace acrnbridge acrn-crashlog: make -C $(T)/acrn-crashlog OUT_DIR=$(OUT_DIR) RELEASE=$(RELEASE) @@ -16,6 +16,9 @@ acrn-manager: acrntrace: make -C $(T)/acrntrace OUT_DIR=$(OUT_DIR) +acrnbridge: + make -C $(T)/acrnbridge OUT_DIR=$(OUT_DIR) + .PHONY: clean clean: make -C $(T)/acrn-crashlog OUT_DIR=$(OUT_DIR) clean @@ -38,3 +41,6 @@ acrn-manager-install: acrntrace-install: make -C $(T)/acrntrace OUT_DIR=$(OUT_DIR) install + +acrnbridge-install: + make -C $(T)/acrnbridge OUT_DIR=$(OUT_DIR) install diff --git a/tools/acrnbridge/Makefile b/tools/acrnbridge/Makefile new file mode 100644 index 000000000..ec5f8c390 --- /dev/null +++ b/tools/acrnbridge/Makefile @@ -0,0 +1,18 @@ + +OUT_DIR ?= . +SYSTEMD_NETWORKDIR := usr/lib + +all: + cp acrn.netdev $(OUT_DIR) + cp acrn.network $(OUT_DIR) + cp acrn_tap0.netdev $(OUT_DIR) + cp eth.network $(OUT_DIR) + +install: + install -d $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network + install -p -D -m 0644 $(OUT_DIR)/acrn.netdev $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network + install -p -D -m 0644 $(OUT_DIR)/acrn.network $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network + install -p -D -m 0644 $(OUT_DIR)/acrn_tap0.netdev $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network + install -p -D -m 0644 $(OUT_DIR)/eth.network $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network + ln -sf /dev/null $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network/80-dhcp.network + ln -sf /dev/null $(DESTDIR)/$(SYSTEMD_NETWORKDIR)/systemd/network/80-virtual.network diff --git a/tools/acrnbridge/acrn.netdev b/tools/acrnbridge/acrn.netdev new file mode 100644 index 000000000..29283cc1d --- /dev/null +++ b/tools/acrnbridge/acrn.netdev @@ -0,0 +1,3 @@ +[NetDev] +Name=acrn-br0 +Kind=bridge diff --git a/tools/acrnbridge/acrn.network b/tools/acrnbridge/acrn.network new file mode 100644 index 000000000..f06114eb1 --- /dev/null +++ b/tools/acrnbridge/acrn.network @@ -0,0 +1,5 @@ +[Match] +Name=e* acrn_tap* + +[Network] +Bridge=acrn-br0 diff --git a/tools/acrnbridge/acrn_tap0.netdev b/tools/acrnbridge/acrn_tap0.netdev new file mode 100644 index 000000000..5824cb997 --- /dev/null +++ b/tools/acrnbridge/acrn_tap0.netdev @@ -0,0 +1,3 @@ +[NetDev] +Name=acrn_tap0 +Kind=tap diff --git a/tools/acrnbridge/eth.network b/tools/acrnbridge/eth.network new file mode 100644 index 000000000..a63931b12 --- /dev/null +++ b/tools/acrnbridge/eth.network @@ -0,0 +1,5 @@ +[Match] +Name=acrn-br0 + +[Network] +DHCP=ipv4