diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/bgp_configs.go | 72 | ||||
-rw-r--r-- | config/default.go | 4 | ||||
-rw-r--r-- | config/serve.go | 18 |
3 files changed, 50 insertions, 44 deletions
diff --git a/config/bgp_configs.go b/config/bgp_configs.go index d6c68782..eda8ce98 100644 --- a/config/bgp_configs.go +++ b/config/bgp_configs.go @@ -828,6 +828,38 @@ func (v RpkiValidationResultType) Validate() error { return nil } +//struct for container gobgp:mrt +type Mrt struct { + // original -> gobgp:file-name + FileName string `mapstructure:"file-name"` +} + +//struct for container gobgp:state +type BmpServerState struct { +} + +//struct for container gobgp:config +type BmpServerConfig struct { + // original -> gobgp:address + //gobgp:address's original type is inet:ip-address + Address string `mapstructure:"address"` + // original -> gobgp:port + Port uint32 `mapstructure:"port"` + // original -> gobgp:route-monitoring-policy + RouteMonitoringPolicy BmpRouteMonitoringPolicyType `mapstructure:"route-monitoring-policy"` +} + +//struct for container gobgp:bmp-server +type BmpServer struct { + // original -> gobgp:address + //gobgp:address's original type is inet:ip-address + Address string `mapstructure:"address"` + // original -> gobgp:bmp-server-config + Config BmpServerConfig `mapstructure:"config"` + // original -> gobgp:bmp-server-state + State BmpServerState `mapstructure:"state"` +} + //struct for container gobgp:rpki-received type RpkiReceived struct { // original -> gobgp:serial-notify @@ -1471,38 +1503,6 @@ type Zebra struct { RedistributeRouteTypeList []InstallProtocolType `mapstructure:"redistribute-route-type-list"` } -//struct for container gobgp:mrt -type Mrt struct { - // original -> gobgp:file-name - FileName string `mapstructure:"file-name"` -} - -//struct for container gobgp:state -type BmpServerState struct { -} - -//struct for container gobgp:config -type BmpServerConfig struct { - // original -> gobgp:address - //gobgp:address's original type is inet:ip-address - Address string `mapstructure:"address"` - // original -> gobgp:port - Port uint32 `mapstructure:"port"` - // original -> gobgp:route-monitoring-policy - RouteMonitoringPolicy BmpRouteMonitoringPolicyType `mapstructure:"route-monitoring-policy"` -} - -//struct for container gobgp:bmp-server -type BmpServer struct { - // original -> gobgp:address - //gobgp:address's original type is inet:ip-address - Address string `mapstructure:"address"` - // original -> gobgp:bmp-server-config - Config BmpServerConfig `mapstructure:"config"` - // original -> gobgp:bmp-server-state - State BmpServerState `mapstructure:"state"` -} - //struct for container gobgp:collector type Collector struct { // original -> gobgp:enabled @@ -2050,10 +2050,6 @@ type Global struct { ApplyPolicy ApplyPolicy `mapstructure:"apply-policy"` // original -> gobgp:collector Collector Collector `mapstructure:"collector"` - // original -> gobgp:bmp-servers - BmpServers []BmpServer `mapstructure:"bmp-servers"` - // original -> gobgp:mrt - Mrt Mrt `mapstructure:"mrt"` // original -> gobgp:zebra Zebra Zebra `mapstructure:"zebra"` // original -> gobgp:mpls-label-range @@ -2072,6 +2068,10 @@ type Bgp struct { PeerGroups []PeerGroup `mapstructure:"peer-groups"` // original -> gobgp:rpki-servers RpkiServers []RpkiServer `mapstructure:"rpki-servers"` + // original -> gobgp:bmp-servers + BmpServers []BmpServer `mapstructure:"bmp-servers"` + // original -> gobgp:mrt + Mrt Mrt `mapstructure:"mrt"` } //struct for container bgp-pol:set-ext-community-method diff --git a/config/default.go b/config/default.go index 536b7a1e..cdd2ee54 100644 --- a/config/default.go +++ b/config/default.go @@ -48,11 +48,11 @@ func SetDefaultConfigValues(v *viper.Viper, b *Bgp) error { b.Global.ListenConfig.Port = bgp.BGP_PORT } - for idx, server := range b.Global.BmpServers { + for idx, server := range b.BmpServers { if server.Config.Port == 0 { server.Config.Port = bgp.BMP_DEFAULT_PORT } - b.Global.BmpServers[idx] = server + b.BmpServers[idx] = server } if !v.IsSet("global.mpls-label-range.min-label") { diff --git a/config/serve.go b/config/serve.go index 4b5fbbe9..9cb3b31e 100644 --- a/config/serve.go +++ b/config/serve.go @@ -20,7 +20,7 @@ func ReadConfigfileServe(path, format string, configCh chan BgpConfigSet) { cnt := 0 for { - b := Bgp{} + var b *Bgp v := viper.New() v.SetConfigFile(path) v.SetConfigType(format) @@ -29,6 +29,8 @@ func ReadConfigfileServe(path, format string, configCh chan BgpConfigSet) { Global Global `mapstructure:"global"` Neighbors []Neighbor `mapstructure:"neighbors"` RpkiServers []RpkiServer `mapstructure:"rpki-servers"` + BmpServers []BmpServer `mapstructure:"bmp-servers"` + Mrt Mrt `mapstructure:"mrt"` DefinedSets DefinedSets `mapstructure:"defined-sets"` PolicyDefinitions []PolicyDefinition `mapstructure:"policy-definitions"` }{} @@ -39,10 +41,14 @@ func ReadConfigfileServe(path, format string, configCh chan BgpConfigSet) { if err != nil { goto ERROR } - b.Global = c.Global - b.Neighbors = c.Neighbors - b.RpkiServers = c.RpkiServers - err = SetDefaultConfigValues(v, &b) + b = &Bgp{ + Global: c.Global, + Neighbors: c.Neighbors, + RpkiServers: c.RpkiServers, + BmpServers: c.BmpServers, + Mrt: c.Mrt, + } + err = SetDefaultConfigValues(v, b) if err != nil { goto ERROR } @@ -51,7 +57,7 @@ func ReadConfigfileServe(path, format string, configCh chan BgpConfigSet) { } cnt++ configCh <- BgpConfigSet{ - Bgp: b, + Bgp: *b, Policy: RoutingPolicy{ DefinedSets: c.DefinedSets, PolicyDefinitions: c.PolicyDefinitions, |