package kernel import ( "github.com/bio-routing/bio-rd/net" "github.com/bio-routing/bio-rd/route" "github.com/bio-routing/bio-rd/routingtable" ) type Kernel struct { osKernel osKernel } type osKernel interface { AddPath(pfx net.Prefix, path *route.Path) error RemovePath(pfx net.Prefix, path *route.Path) bool uninit() error } func New() (*Kernel, error) { k := &Kernel{} err := k.init() if err != nil { return nil, err } return k, nil } func (k *Kernel) AddPath(pfx net.Prefix, path *route.Path) error { return k.osKernel.AddPath(pfx, path) } func (k *Kernel) RemovePath(pfx net.Prefix, path *route.Path) bool { return k.osKernel.RemovePath(pfx, path) } func (k *Kernel) UpdateNewClient(routingtable.RouteTableClient) error { return nil } func (k *Kernel) Register(routingtable.RouteTableClient) { } func (k *Kernel) RegisterWithOptions(routingtable.RouteTableClient, routingtable.ClientOptions) { } func (k *Kernel) Unregister(routingtable.RouteTableClient) { } func (k *Kernel) RouteCount() int64 { return -1 } func (k *Kernel) ClientCount() uint64 { return 0 } func (k *Kernel) Dump() []*route.Route { return nil } func (k *Kernel) Dispose() { k.osKernel.uninit() }