diff --git a/README.md b/README.md index be1cae9..118a743 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,27 @@ # VPP Containerlab Docker image -This docker container creates a VPP instance based on the latest release. -It starts up as per normal, using /etc/vpp/startup.conf (which Containerlab -will replace), and once started, it'll execute /etc/vpp/bootstrap.vpp within -the dataplane. There are three relevant files: +This docker container creates a VPP instance based on the latest release. It starts up as per +normal, using /etc/vpp/startup.conf (which Containerlab will replace), and once started, it'll +execute /etc/vpp/bootstrap.vpp within the dataplane. There are three relevant files: -1. manual-pre.vpp -- can be supplied by the user, to run any configuration - statements before containerlab takes control. -1. clab.vpp -- generated by containerlab. It will bind the vethpair interfaces - into the dataplane. -1. manual-post.vpp -- can be supplied by the user, to run any configuration - statements after containerlab is finished with its per-lab statements. +1. `manual-pre.vpp` -- can be supplied by the user, to run any configuration statements before + containerlab takes control. + +1. `clab.vpp` -- generated by containerlab. Its purpose is to bind the `vethpair` interfaces + into theo dataplane (see below). + +1. `manual-post.vpp` -- can be supplied by the user, to run any configuration statements after + containerlab is finished with its per-lab statements. ## Building +```bash docker build -f Dockerfile.bookworm . -t pimvanpelt/vpp-containerlab +``` ## Starting the container +``` docker network create --driver=bridge network2 --subnet=172.19.1.0/24 docker rm clab-pim docker run --cap-add=NET_ADMIN --cap-add=SYS_NICE --cap-add=SYS_PTRACE \ @@ -26,21 +30,21 @@ docker run --cap-add=NET_ADMIN --cap-add=SYS_NICE --cap-add=SYS_PTRACE \ --privileged=True --name clab-pim \ docker.io/pimvanpelt/vpp-containerlab docker network connect network2 clab-pim +``` ## Configuring VPP +``` docker exec -it clab-pim vppctl +``` +and then within the VPP control shell: + +``` vpp-clab# create host-interface v2 name eth1 vpp-clab# set interface name host-eth1 eth1 vpp-clab# set interface mtu 1500 eth1 vpp-clab# set interface ip address eth1 172.19.1.2/24 vpp-clab# set interface ip address eth1 fec0::2/64 vpp-clab# set interface state eth1 up - -## References - -https://s3-docs.fd.io/vpp/22.02/usecases/vpp_testbench/index.html -https://git.ipng.ch/ipng/drone-hugo -https://github.com/ligato/vpp-base/tree/master - +```