From c1184db82bccc1091cf6d0998825415af0a2fea2 Mon Sep 17 00:00:00 2001 From: Martin Winter Date: Mon, 30 Apr 2018 18:53:18 -0700 Subject: [PATCH] snapcraft: Add PBR daemon to snap package Signed-off-by: Martin Winter --- snapcraft/defaults/pbrd.conf.default | 0 snapcraft/scripts/Makefile | 1 + snapcraft/scripts/pbrd-service | 13 +++++++++++++ snapcraft/snapcraft.yaml.in | 17 ++++++++++++++++- 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 snapcraft/defaults/pbrd.conf.default create mode 100644 snapcraft/scripts/pbrd-service diff --git a/snapcraft/defaults/pbrd.conf.default b/snapcraft/defaults/pbrd.conf.default new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/snapcraft/scripts/Makefile b/snapcraft/scripts/Makefile index 5a65aa90139c..110f4b2878f6 100644 --- a/snapcraft/scripts/Makefile +++ b/snapcraft/scripts/Makefile @@ -14,6 +14,7 @@ install: install -D -m 0755 nhrpd-service $(DESTDIR)/bin/ install -D -m 0755 babeld-service $(DESTDIR)/bin/ install -D -m 0755 eigrpd-service $(DESTDIR)/bin/ + install -D -m 0755 pbrd-service $(DESTDIR)/bin/ install -D -m 0755 set-options $(DESTDIR)/bin/ install -D -m 0755 show_version $(DESTDIR)/bin/ diff --git a/snapcraft/scripts/pbrd-service b/snapcraft/scripts/pbrd-service new file mode 100644 index 000000000000..a9265a1ae653 --- /dev/null +++ b/snapcraft/scripts/pbrd-service @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e -x + +if ! [ -e $SNAP_DATA/pbrd.conf ]; then + cp $SNAP/etc/frr/pbrd.conf.default $SNAP_DATA/pbrd.conf +fi +exec $SNAP/sbin/pbrd \ + -f $SNAP_DATA/pbrd.conf \ + --pid_file $SNAP_DATA/pbrd.pid \ + --socket $SNAP_DATA/zsock \ + --vty_socket $SNAP_DATA + diff --git a/snapcraft/snapcraft.yaml.in b/snapcraft/snapcraft.yaml.in index 13c2348e1a5e..b4e1812c86e0 100644 --- a/snapcraft/snapcraft.yaml.in +++ b/snapcraft/snapcraft.yaml.in @@ -4,7 +4,8 @@ summary: FRRouting BGP/OSPFv2/OSPFv3/ISIS/RIP/RIPng/PIM/LDP routing daemon description: BGP/OSPFv2/OSPFv3/ISIS/RIP/RIPng/PIM routing daemon FRRouting (FRR) is free software which manages TCP/IP based routing protocols. It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, - RIPng, PIM, LDP, Babel, EIGRP as well as the IPv6 versions of these. + RIPng, PIM, LDP, Babel, EIGRP and PBR (Policy-based routing) as well as + the IPv6 versions of these. FRRouting (frr) is a fork of Quagga. confinement: strict grade: devel @@ -105,6 +106,13 @@ apps: - network - network-bind - network-control + pbrd: + command: bin/pbrd-service + daemon: simple + plugs: + - network + - network-bind + - network-control set: command: bin/set-options zebra-debug: @@ -179,6 +187,12 @@ apps: - network - network-bind - network-control + pbrd-debug: + command: sbin/pbrd -f $SNAP_DATA/pbrd.conf --pid_file $SNAP_DATA/pbrd.pid --socket $SNAP_DATA/zsock --vty_socket $SNAP_DATA + plugs: + - network + - network-bind + - network-control parts: frr: @@ -259,6 +273,7 @@ parts: nhrpd.conf.default: etc/frr/nhrpd.conf.default babeld.conf.default: etc/frr/babeld.conf.default eigrpd.conf.default: etc/frr/eigrpd.conf.default + pbrd.conf.default: etc/frr/pbrd.conf.default vtysh.conf.default: etc/frr/vtysh.conf.default frr-scripts: plugin: make