2019-06-12 22:30:42 +01:00
|
|
|
package router
|
|
|
|
|
2019-06-13 15:12:07 +01:00
|
|
|
// RIB is Routing Information Base.
|
|
|
|
// RIB is used to source the base routing table.
|
2019-06-12 22:30:42 +01:00
|
|
|
type RIB interface {
|
|
|
|
// Initi initializes RIB
|
|
|
|
Init(...RIBOption) error
|
|
|
|
// Options returns RIB options
|
|
|
|
Options() RIBOptions
|
2019-06-13 15:12:07 +01:00
|
|
|
// Routes returns routes
|
2019-06-12 22:30:42 +01:00
|
|
|
Routes() []Route
|
|
|
|
// String returns debug info
|
|
|
|
String() string
|
|
|
|
}
|
|
|
|
|
2019-06-13 23:28:47 +02:00
|
|
|
// RIBOption sets RIB options
|
2019-06-13 12:09:49 +01:00
|
|
|
type RIBOption func(*RIBOptions)
|
|
|
|
|
2019-06-13 23:28:47 +02:00
|
|
|
// RIBOptions are RIB options
|
2019-06-12 22:30:42 +01:00
|
|
|
type RIBOptions struct {
|
|
|
|
// Source defines RIB source URL
|
|
|
|
Source string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Source sets RIB source
|
|
|
|
func Source(s string) RIBOption {
|
|
|
|
return func(o *RIBOptions) {
|
|
|
|
o.Source = s
|
|
|
|
}
|
|
|
|
}
|