Git Product home page Git Product logo

zebra's Introduction

coreswitch


coreswitch is an open soruce project for EPC (Evolved Packet Core) of LTE and 5G infrastructure. Right now we are implementing MME (Mobility Management Entity). Other component will be implemented later on.


Supported Platform

Right now only Ubuntu 18.04 is supported.

Build

To build the system. ASN1 handling C library needs to be built.

$ cd coreswitch/pkg/s1ap/asn1
$ make lib
$ sudo make install

After this

$ go get github.com/coreswitch/coreswitch/cmd/mmed

will build mmed.

Run

Just simply execute mmed will start MME handling on all of interfaces.

$ mmed
2019/08/28 14:21:42 Listen on 127.0.0.1/[::1%lo]/10.211.55.26/[fe80::38e7:5a76:4355:51d7%enp0s5]/[fe80::79d1:506d:7682:9ee5%enp0s6]/[fe80::cd97:63f4:fcad:b2c5%enp0s7]/172.18.0.1/172.17.0.1:36412

zebra's People

Contributors

ebiken avatar endoh avatar kishiguro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zebra's Issues

no go mod to keep api stable

go get cmd will fail like, this is the grpc api problem, but could be addressed by go mod

github.com/coreos/[email protected]+incompatible/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions
github.com/coreos/[email protected]+incompatible/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions

github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption
github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption

Won't work with etcd v3.3.26 & go 1.16.2

(ansible) sloeuillet@sloeuillet-kaiko:~$ go get github.com/coreswitch/zebra/rib/ribd
go: downloading github.com/coreswitch/zebra v1.8.1
go: downloading github.com/coreos/etcd v0.5.0-alpha.5
go: downloading github.com/golang/protobuf v1.5.2
go: downloading github.com/mitchellh/mapstructure v1.4.2
go: downloading github.com/howeyc/fsnotify v0.9.0
go: downloading golang.org/x/net v0.0.0-20211007125505-59d4e928ea9d
go: downloading github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f
go: downloading github.com/vishvananda/netlink v1.1.0
go: downloading google.golang.org/grpc v1.41.0
go: downloading github.com/coreos/etcd v3.3.26+incompatible
go: downloading github.com/coreswitch/netutil v1.0.0
go: downloading github.com/coreswitch/component v1.0.0
go: downloading github.com/coreswitch/openconfigd v0.8.1
go: downloading github.com/coreswitch/log v0.0.0-20180520054427-319a7dcf0937
go: downloading github.com/coreswitch/cmd v0.0.0-20171009065211-39afb7adac20
go: downloading golang.org/x/sys v0.0.0-20210423082822-04245dca01da
go: downloading google.golang.org/protobuf v1.26.0
go: downloading github.com/google/uuid v1.1.2
go: downloading github.com/sirupsen/logrus v1.8.1
go: downloading github.com/coreos/go-semver v0.3.0
go: downloading github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f
go: downloading go.uber.org/zap v1.19.1
go: downloading github.com/gogo/protobuf v1.3.2
go: downloading github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
go: downloading github.com/coreswitch/dependency v1.0.0
go: downloading golang.org/x/sys v0.0.0-20210510120138-977fb7262007
go: downloading go.uber.org/atomic v1.7.0
go: downloading go.uber.org/multierr v1.6.0
# github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption
go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption
# github.com/coreos/etcd/clientv3/balancer/picker
go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions
go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions

Netlink route delete messages cannot be received when interface's VRF changed

When a VLAN interface which belongs to a VRF moves to another VRF, the static routes on the interface at the first VRF are automatically deleted, however, netlink route delete messages for those routes cannot be received.

I used ip monitor command to monitor netlink messages, but any netlink route delete messages for those routes couldn't be received, it probably means that Linux kernel doesn't send netlink route delete messages for those routes.

This problem can be appeared at both the latest version of ribd/openconfigd pair and the first commit version of them as well.

  • How to reproduce
  1. Use the config below and boot ribd
  2. Start monitoring netlink route messages using ip monitor command
    ip monitor route
  3. On openconfigd cli, chaneg the vlan100's belonging VRF from default VRF to vrf1, and commit.
    set interfaces interface vlan100 vrf vrf100
  4. At this point, two routes; 172.16.1.0/24 and 172.16.2.0/24 are properly deleted from linux kernel routing table, however, netlink route delete messages for theses routes are not received.
Deleted fe80::/64 dev vlan100  proto kernel  metric 256  pref medium
Deleted ff00::/8 dev vlan100  table local  metric 256  pref medium
Deleted local fe80:: dev lo  table local  proto none  metric 0  pref medium
Deleted local fe80::38a3:79ff:fec2:f519 dev lo  table local  proto none  metric 0  pref medium
local 172.20.0.1 dev vlan100  table 1  proto kernel  scope host  src 172.20.0.1
broadcast 172.20.0.255 dev vlan100  table 1  proto kernel  scope link  src 172.20.0.1
172.20.0.0/24 dev vlan100  table 1  proto kernel  scope link  src 172.20.0.1
broadcast 172.20.0.0 dev vlan100  table 1  proto kernel  scope link  src 172.20.0.1
ff00::/8 dev vlan100  table 1  metric 256  pref medium
fe80::/64 dev vlan100  table 1  proto kernel  metric 256  pref medium
local fe80::a2aa:aaff:feaa:aa64 dev lo  table 1  proto none  metric 0  pref medium
local fe80:: dev lo  table 1  proto none  metric 0  pref medium
  • config
vrf {
    name vrf1;
}
vlans {
    vlan 100;
    vlan 30;
    vlan 40;
}
interfaces {
    interface vlan100 {
        ipv4 {
            address 172.20.0.1/24;
        }
    }
    interface vlan30 {
        ipv4 {
            address 172.20.30.1/24;
        }
    }
    interface vlan40 {
        ipv4 {
            address 172.20.40.1/24;
        }
    }
    interface vrf1;
}
routing-options {
    ipv4 {
        route 172.16.1.0/24 {
            nexthop 172.20.0.11;
        }
        route 172.16.2.0/24 {
            nexthop 172.20.0.12;
        }
        route 172.16.3.0/24 {
            nexthop 172.20.30.13;
        }
        route 172.16.4.0/24 {
            nexthop 172.20.40.14;
        }
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.