Skip to content
Snippets Groups Projects
Select Git revision
  • e1226a26a4b195c24672e89c6a6bdd895f7c7d14
  • master default protected
  • renovate/configure
  • 2-create-ospf-example
  • feature/isis
  • migrate-to-github-actions
  • aspath/convenience
  • hashroute/public
  • cmd/rismirror
  • riscli/vrf
  • fix/bmp_down
  • ris/logging
  • fix/ris_race
  • fix/bmp_metrics
  • please-go-vet
  • fix/lock_copy
  • fix/dedup_mem
  • add-get-routers-rpc
  • feature/bgp_md5
  • is-is/srv
  • feature/ris/lpm_any
  • v0.0.3-pre4
  • v0.0.3-pre3
  • v0.0.3-pre2
  • v0.0.3-pre1
  • v0.0.2-pre9
  • v0.0.2-pre8
  • v0.0.2-pre7
  • v0.0.2-pre6
  • v0.0.2-pre5
  • v0.0.2-pre4
  • v0.0.2-pre3
  • v0.0.2-pre2
  • v0.0.2-pre1
  • v0.0.1-pre10
  • v0.0.1-pre9
  • v0.0.1-pre7
  • v0.0.1-pre8
  • v0.0.1-pre6
  • v0.0.1-pre4
  • v0.0.1-pre5
41 results

bio-rd

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • user avatar
    cedi authored
    With this commit i'm introducing the netlink protocol to read routes
    from the linux kernel routing table to the locRIB.
    This also adds the functionality to insert new routes to the linux
    kernel routing stack which where learned by other protocol (like e.g.
    BGP).
    
    This is done by the protocols/netlink/netlink.go object.
    The netlink.go file acts as an facade around the netlink_reader.go and
    netlink_writer.go.
    
    netlink_reader itself reads in a defined reding interval new routes from
    the kernel and propagates new routes to all subscribed clients.
    The netlink reader can also be filtered using the same filter-api as in
    adjRibIn/adjRibOut for BGP.
    To read new routes to the locRIB you have to register the locRIB to the
    netlink_reader using the ClientManager interface, just like you would
    register the locRIB to the adjRibIn.
    
    netlink_writer must be subscribed to the locRIB in order to write the
    routes from locRIB into the kernel.
    This useses the ClientManager interface, just like you would register
    the adjRibOut to the locRIB.
    netlink_writer itself currently does not support filters, since all
    routes form the locRIB should be written to the kernel.
    The filter functionality could be easily added here as well.
    
    The netlink_writer currently does not support ecmp. This is subject of
    an other commit.
    
    The current implementation could be considered as work in progress, but
    the code is mature enough to start a review on it.
    e1226a26
    History

    bio-rd

    A re-implementation of BGP, IS-IS and OSPF in go. We value respect and robustness!

    Build Status Coverage Status Go ReportCard

    Building

    We use Bazel to build bio-rd.

    Build

    bazel build //:bio-rd
    bazel-bin/linux_amd64_stripped/bio-rd -arguments go -here

    or

    bazel run //:bio-rd -- -arguments go -here

    Run Tests

    bazel test //...

    Update Bazel BUILD files

    To regenerate BUILD files (for both the project and vendored libraries), you will need to run the following:

    bazel run //:gazelle -- update

    Be sure to commit the changes.

    Update vendor/dependencies

    After updating Gopkg.toml, run

    bazel build //vendor/github.com/golang/dep/cmd/dep
    bazel-bin/vendor/github.com/golang/dep/cmd/dep/linux_amd64_stripped/dep use
    # hack: dep of dep gives us these, and it breaks gazelle
    rm -rf vendor/github.com/golang/dep/cmd/dep/testdata
    rm -rf vendor/github.com/golang/dep/internal/fs/testdata/symlinks/dir-symlink