Commit 92bccd4c authored by Jan Maria Matejka's avatar Jan Maria Matejka
Browse files

Merge branch 'int-new' into show-route

Updated static flowspec action definition to the new filter syntax.
parents 2776cfaf c408d807
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -11,3 +11,5 @@
/config.status
/configure
/sysdep/autoconf.h.in
/sysdep/autoconf.h.in~
/cscope.*

.gitlab-ci.yml

0 → 100644
+309 −0
Original line number Diff line number Diff line
variables:
  DEBIAN_FRONTEND: noninteractive
  LC_ALL: C
  GIT_STRATEGY: fetch
  DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
  IMG_BASE: registry.labs.nic.cz/labs/bird

stages:
  - image
  - build

.docker: &docker_build
  stage: image
  allow_failure: true
  script:
  - $DOCKER_CMD login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.labs.nic.cz
  # Make sure we refresh the base image if it updates (eg. security updates, etc)
  # If we do just the build, cache is always reused and the freshness of the
  # base image is never checked. However, pull always asks and updates the
  # image only if it changed ‒ therefore, the cache is used unless there's a
  # change.
  - $DOCKER_CMD pull `sed -ne 's/^FROM //p' "misc/docker/$IMG_NAME/Dockerfile"`
  - $DOCKER_CMD build -t "bird:$IMG_NAME" "misc/docker/$IMG_NAME"
  - $DOCKER_CMD tag "bird:$IMG_NAME" "$IMG_BASE:$IMG_NAME"
  - $DOCKER_CMD push "$IMG_BASE:$IMG_NAME"
  after_script:
  - rm -f "$HOME/.docker/$CI_JOB_ID/" # cleanup the credentials
  tags:
  # That's Docker in Docker
  - dind

docker_debian-7-amd64:
  variables:
    IMG_NAME: "debian-7-amd64"
  <<: *docker_build

docker_debian-8-amd64:
  variables:
    IMG_NAME: "debian-8-amd64"
  <<: *docker_build

docker_debian-9-amd64:
  variables:
    IMG_NAME: "debian-9-amd64"
  <<: *docker_build

docker_debian-testing-amd64:
  variables:
    IMG_NAME: "debian-testing-amd64"
  <<: *docker_build

docker_debian-7-i386:
  variables:
    IMG_NAME: "debian-7-i386"
  <<: *docker_build

docker_debian-8-i386:
  variables:
    IMG_NAME: "debian-8-i386"
  <<: *docker_build

docker_debian-9-i386:
  variables:
    IMG_NAME: "debian-9-i386"
  <<: *docker_build

docker_debian-testing-i386:
  variables:
    IMG_NAME: "debian-testing-i386"
  <<: *docker_build

docker_fedora-25-amd64:
  variables:
    IMG_NAME: "fedora-25-amd64"
  <<: *docker_build

docker_fedora-26-amd64:
  variables:
    IMG_NAME: "fedora-26-amd64"
  <<: *docker_build

docker_centos-6-amd64:
  variables:
    IMG_NAME: "centos-6-amd64"
  <<: *docker_build

docker_centos-7-amd64:
  variables:
    IMG_NAME: "centos-7-amd64"
  <<: *docker_build

docker_opensuse-42_3-amd64:
  variables:
    IMG_NAME: "opensuse-42.3-amd64"
  <<: *docker_build

docker_ubuntu-14_04-amd64:
  variables:
    IMG_NAME: "ubuntu-14.04-amd64"
  <<: *docker_build

docker_ubuntu-16_04-amd64:
  variables:
    IMG_NAME: "ubuntu-16.04-amd64"
  <<: *docker_build

.debian-7-i386: &debian-7-i386_env
  image: registry.labs.nic.cz/labs/bird:debian-7-i386
  tags:
  - docker
  - linux
  - amd64

.debian-8-i386: &debian-8-i386_env
  image: registry.labs.nic.cz/labs/bird:debian-8-i386
  tags:
  - docker
  - linux
  - amd64

.debian-9-i386: &debian-9-i386_env
  image: registry.labs.nic.cz/labs/bird:debian-9-i386
  tags:
  - docker
  - linux
  - amd64

.debian-testing-i386: &debian-testing-i386_env
  image: registry.labs.nic.cz/labs/bird:debian-testing-i386
  tags:
  - docker
  - linux
  - amd64

.debian-7-amd64: &debian-7-amd64_env
  image: registry.labs.nic.cz/labs/bird:debian-7-amd64
  tags:
  - docker
  - linux
  - amd64

.debian-8-amd64: &debian-8-amd64_env
  image: registry.labs.nic.cz/labs/bird:debian-8-amd64
  tags:
  - docker
  - linux
  - amd64

.debian-9-amd64: &debian-9-amd64_env
  image: registry.labs.nic.cz/labs/bird:debian-9-amd64
  tags:
  - docker
  - linux
  - amd64

.debian-testing-amd64: &debian-testing-amd64_env
  image: registry.labs.nic.cz/labs/bird:debian-testing-amd64
  tags:
  - docker
  - linux
  - amd64

.fedora-25-amd64: &fedora-25-amd64_env
  image: registry.labs.nic.cz/labs/bird:fedora-25-amd64
  tags:
  - docker
  - linux
  - amd64

.fedora-26-amd64: &fedora-26-amd64_env
  image: registry.labs.nic.cz/labs/bird:fedora-26-amd64
  tags:
  - docker
  - linux
  - amd64

.centos-6-amd64: &centos-6-amd64_env
  image: registry.labs.nic.cz/labs/bird:centos-6-amd64
  tags:
  - docker
  - linux
  - amd64

.centos-7-amd64: &centos-7-amd64_env
  image: registry.labs.nic.cz/labs/bird:centos-7-amd64
  tags:
  - docker
  - linux
  - amd64

.opensuse-42_3-amd64: &opensuse-42_3-amd64_env
  image: registry.labs.nic.cz/labs/bird:opensuse-42.3-amd64
  tags:
  - docker
  - linux
  - amd64

.ubuntu-14_04-amd64: &ubuntu-14_04-amd64_env
  image: registry.labs.nic.cz/labs/bird:ubuntu-14.04-amd64
  tags:
  - docker
  - linux
  - amd64

.ubuntu-16_04-amd64: &ubuntu-16_04-amd64_env
  image: registry.labs.nic.cz/labs/bird:ubuntu-16.04-amd64
  tags:
  - docker
  - linux
  - amd64

# TODO We want to copy these BSDs to our own virtual machines, to make sure someone doesn't update them by accident.
.freebsd-11-i386: &freebsd-11-i386_env
  tags:
  - freebsd
  - i386
  #only:
  #- master
  #- triggers
  #- tags

.freebsd-11-amd64: &freebsd-11-amd64_env
  tags:
  - freebsd
  - amd64
  #only:
  #- master
  #- triggers
  #- tags

.build: &build_job
  stage: build
  script:
  - autoreconf
  - ./configure CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
  # Detect which make is available
  - MAKE=make
  - which gmake 2>/dev/null >/dev/null && MAKE=gmake
  - $MAKE
  # Run tests if they are available
  - $MAKE check

build-debian-7-amd64:
  <<: *debian-7-amd64_env
  <<: *build_job

build-debian-8-amd64:
  <<: *debian-8-amd64_env
  <<: *build_job

build-debian-9-amd64:
  <<: *debian-9-amd64_env
  <<: *build_job

build-debian-testing-amd64:
  <<: *debian-testing-amd64_env
  <<: *build_job

build-fedora-25-amd64:
  <<: *fedora-25-amd64_env
  <<: *build_job

build-fedora-26-amd64:
  <<: *fedora-26-amd64_env
  <<: *build_job

build-centos-6-amd64:
  <<: *centos-6-amd64_env
  <<: *build_job

build-centos-7-amd64:
  <<: *centos-7-amd64_env
  <<: *build_job

build-opensuse-42_3-amd64:
  <<: *opensuse-42_3-amd64_env
  <<: *build_job

build-ubuntu-14_04-amd64:
  <<: *ubuntu-14_04-amd64_env
  <<: *build_job

build-ubuntu-16_04-amd64:
  <<: *ubuntu-16_04-amd64_env
  <<: *build_job

build-debian-7-i386:
  <<: *debian-7-i386_env
  <<: *build_job

build-debian-8-i386:
  <<: *debian-8-i386_env
  <<: *build_job

build-debian-9-i386:
  <<: *debian-9-i386_env
  <<: *build_job

build-debian-testing-i386:
  <<: *debian-testing-i386_env
  <<: *build_job

build-freebsd-11-amd64:
  <<: *freebsd-11-amd64_env
  <<: *build_job

build-freebsd-11-i386:
  <<: *freebsd-11-i386_env
  <<: *build_job
+9 −1
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@ INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@

git-label:=$(strip $(shell git describe --always --dirty=-x 2>/dev/null))
ifneq ($(git-label),)
        CFLAGS += -DGIT_LABEL="$(git-label)"
endif

client=$(addprefix $(exedir)/,@CLIENT@)
daemon=$(exedir)/bird
protocols=@protocols@
@@ -53,7 +58,7 @@ endif
docgoals := docs userdocs progdocs
testgoals := check test tests tests_run
cleangoals := clean distclean testsclean
.PHONY: all daemon cli $(docgoals) $(testgoals) $(cleangoals) tags
.PHONY: all daemon cli $(docgoals) $(testgoals) $(cleangoals) tags cscope
all: daemon cli

daemon: $(daemon)
@@ -157,6 +162,9 @@ endif
tags:
	cd $(srcdir) ; etags -lc `find $(dirs) -name *.[chY]`

cscope:
	cd $(srcdir) ; find $(dirs) -name *.[chY] > cscope.files ; cscope -b

# Install

install: all
+50 −25
Original line number Diff line number Diff line
Version 2.0.0-pre1 (2017-04-29)
  o Support for MPLS next hops
  o VPNv4 and VPNv6 network types
  o BGP with MPLS labels (RFC 3107)
  o BGP MPLS/VPN support (RFC 4364)
  o BGP 6PE - IPv6 NLRI over IPv4 MPLS (RFC 4798)
  o BGP IPv4 NLRI with an IPv6 Next Hop (RFC 5549)
  o BGP Confederations (RFC 5065)
  o BGP: Simplify igp table options
  o BGP: Allow exchanging LOCAL_PREF with eBGP peers
  o BGP: Allow to specify interface for regular sessions
  o Babel support restored
  o Static: Minor overhaul
  o Netlink: Default kernel metric changed to 32
  o Flowspec: Limit tcp mask length to 12 bits
  o Update of show route command
Version 2.0.2 (2018-03-22)
  o Source-specific routing support for Linux kernel and Babel
  o BGP: New option 'disable after cease'
  o Filter: Allow silent filter execution
  o Filter: Fixed stack overflow in BGP mask expressions.
  o Several bugfixes

  Notes:

  Definitions of OSPFv2, OSPFv3 and RIP NG protocols now use keywords
  'ospf v2', 'ospf v3' and 'rip ng' instead of 'ospf2', 'ospf3' and 'ripng'.
  Syntax prefix:netmask for IPv4 prefixes was dropped. Just use prefix/pxlen.


  Flows and ROAs no longer use phony next hops, so there is no need to use
  'drop' or 'unreachable' in their static route definitions.
Version 2.0.1 (2018-01-16)
  o Linux MPLS kernel support
  o Better handling of channels inherited from templates
  o Default EBGP Route Propagation Behavior without Policies (RFC 8212)
  o Many bugfixes

  See doc/bird.conf.example2 for configuration examples.
  Notes:

  To satisfy requirements of RFC 8212, external BGP protocols now require
  explicit configuration of import and export policies.


Version 2.0.0-pre0 (2016-12-07)
Version 2.0.0 (2017-12-11)
  o Integrated IPv4 + IPv6 design
  o Support for MPLS next hops
  o Support for VPNv4 and VPNv6 networks
  o Microsecond timers infrastructure
  o Basic VRF support
  o Babel: Support for dual-stack IPv4/IPv6
  o Babel: Many improvements and bugfixes
  o Major BGP protocol redesign
  o Full support for Multiprotocol BGP
  o BGP multicast support (SAFI 2)
  o BGP flowspec support (RFC 5575)
  o BGP with MPLS labels (RFC 3107)
  o BGP MPLS/VPN support (RFC 4364)
  o BGP 6PE - IPv6 NLRI over IPv4 MPLS (RFC 4798)
  o BGP IPv4 NLRI with an IPv6 Next Hop (RFC 5549)
  o BGP Confederations (RFC 5065)
  o BGP Shutdown communication (RFC 8203)
  o BGP: Allow exchanging LOCAL_PREF with eBGP peers
  o BGP: Allow to specify interface for regular sessions
  o OSPF: Support of address families in OSPFv3
  o OSPF: Enable ECMP and Link detection by default
  o RAdv: Support for more specific routes (RFC 4191)
  o RAdv: Proper handling of prefix retraction
  o RIP: Enable ECMP and Link detection by default
  o Redesign of RPKI handling
  o New RPKI-Router protocol
  o Static: Minor overhaul
  o Static: Support for all new route types
  o Kenrel: Default Linux kernel metric changed to 32
  o Kernel: Fix IPv6 ECMP handling with Linux 4.11+
  o Update of show route command
  o BIRD client persistent history
  o New build system
  o Unit tests
  o ...

  Notes:

  Protocols and tables are now connected using explicit channels, most related
  protocol options (table, import, export, ...) are now channel options. See
  doc/bird.conf.example2 for configuration examples.
  Tables are now defined with appropriate net type keyword. Protocols and tables
  are now connected by explicit channels, most related protocol options (table,
  import, export, ...) are now channel options. See doc/bird.conf.example2 for
  configuration examples. Some options were removed/replaced.


Version 1.6.3 (2016-12-21)
+2 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
                (c) 1998--2008  Martin Mares <mj@ucw.cz>
                (c) 1998--2000  Pavel Machek <pavel@ucw.cz>
                (c) 1998--2008  Ondrej Filip <feela@network.cz>
                (c) 2009--2016  CZ.NIC z.s.p.o.
                (c) 2009--2017  CZ.NIC z.s.p.o.

================================================================================

@@ -19,7 +19,7 @@ Public License.
What do we support
==================

	o  Both IPv4 and IPv6 (use --enable-ipv6 when configuring)
	o  Both IPv4 and IPv6
	o  Multiple routing tables
	o  Border Gateway Protocol (BGPv4)
	o  Routing Information Protocol (RIPv2, RIPng)
Loading