frr/snapcraft/README.snap_build.md

3.0 KiB

Building your own FRRouting Snap

(Tested on Ubuntu 18.04)

  1. Install snapcraft:

     sudo apt-get install snapcraft
    
  2. Checkout FRRouting under a unpriviledged user account

     git clone https://github.com/frrouting/frr.git
     cd frr
    
  3. (Optional) Add extra version information to snapcraft/extra_version_info.txt. Information in this file will be displayed with the frr.version command (simple cat after the display of the zebra --version output)

  4. Run Bootstrap and make distribution tar.gz

     ./bootstrap.sh
     ./configure --with-pkg-extra-version=-MySnapVersion
     make dist
    

    Note: configure parameters are not important for the Snap building, except the with-pkg-extra-version if you want to give the Snap a specific name to mark your own unoffical build

    This will build frr-something.tar.gz - the distribution tar and the snapcraft/snapcraft.yaml with the matching version number

  5. Create snap

     cd snapcraft
     snapcraft
    

    You should now end up with frr_something.snap

Installing the snap

(This can be done on a different system)

  1. Install snapd

     sudo apt-get install snapd
    
  2. Install self-built frr snap. (--force-dangerous is required to install a unsigned self-built snap)

     snap install --force-dangerous ./frr*.snap
    

    Connect the priviledged network-control plug to the snap:

     snap connect frr:network-control core:network-control
    

See README.usage.md for more details on setting up and using the snap

DONE.

The Snap will be auto-started and running.

Operations

FRRouting Daemons

At this time, all FRRouting daemons are auto-started.

A daemon can be stopped/started with (ie ospf6d)

systemctl stop snap.frr.ospf6d.service
systemctl start snap.frr.ospf6d.service

or disabled/enabled with

systemctl disable snap.frr.ospf6d.service
systemctl enable snap.frr.ospf6d.service

FRRouting Commands

All the commands are prefixed with frr.

frr.vtysh       -> vtysh
frr.version     -> Just gives version output (zebra --version)
frr.readme      -> Returns simple README with hints on using FRR

frr.bgpd-debug  -> Directly start each daemon (without service)
frr.isisd-debug
frr.ospf6d-debug
frr.ospfd-debug
frr.pimd-debug
frr.pim6d-debug
frr.ripd-debug
frr.ripngd-debug
frr.ldp-debug
frr.zebra-debug
frr.nhrpd-debug
frr.babeld-debug
frr.eigrpd-debug
frr.pbrd-debug
frr.staticd-debug
frr.bfdd-debug
frr.fabricd-debug
frr.pathd-debug

vtysh can be accessed as frr.vtysh (Make sure you have /snap/bin in your path). If access as vtysh instead of frr.vtysh is needed, you can enable it via a snap alias as follows:

sudo snap alias frr vtysh

This will add the vtysh command to your /snap/bin for direct access. The output of

sudo snap aliases

should list vtysh command alias as enabled:

App Alias Notes frr.vtysh vtysh enabled