summaryrefslogtreecommitdiffhomepage
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/bgp_configs.go72
-rw-r--r--config/default.go4
-rw-r--r--config/serve.go18
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,