summaryrefslogtreecommitdiffhomepage
path: root/config
diff options
context:
space:
mode:
authorISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>2016-04-22 07:15:36 +0000
committerISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>2016-04-27 10:32:42 +0000
commit6e8d1bb1626996fbaa80b4b0a4322b2bdc27ce6e (patch)
tree863afb30b80284dbc7184a81ce9d3c12bfbd2f80 /config
parent3075ae5df98c1f6de73fd33ab5900a81cec3845b (diff)
config: support reload of AdminDown
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'config')
-rw-r--r--config/bgp_configs.go6
-rw-r--r--config/default.go1
-rw-r--r--config/serve.go2
3 files changed, 9 insertions, 0 deletions
diff --git a/config/bgp_configs.go b/config/bgp_configs.go
index c259d426..57866339 100644
--- a/config/bgp_configs.go
+++ b/config/bgp_configs.go
@@ -2307,6 +2307,9 @@ type NeighborConfig struct {
// original -> bgp:neighbor-address
//bgp:neighbor-address's original type is inet:ip-address
NeighborAddress string `mapstructure:"neighbor-address"`
+ // original -> gobgp:admin-down
+ //gobgp:admin-down's original type is boolean
+ AdminDown bool `mapstructure:"admin-down"`
}
func (lhs *NeighborConfig) Equal(rhs *NeighborConfig) bool {
@@ -2343,6 +2346,9 @@ func (lhs *NeighborConfig) Equal(rhs *NeighborConfig) bool {
if lhs.NeighborAddress != rhs.NeighborAddress {
return false
}
+ if lhs.AdminDown != rhs.AdminDown {
+ return false
+ }
return true
}
diff --git a/config/default.go b/config/default.go
index 102621eb..24dc08c7 100644
--- a/config/default.go
+++ b/config/default.go
@@ -141,6 +141,7 @@ func SetDefaultConfigValues(v *viper.Viper, b *BgpConfigSet) error {
n.State.Description = n.Config.Description
n.Config.Description = ""
+ n.State.AdminDown = n.Config.AdminDown
if !vv.IsSet("neighbor.config.local-as") {
n.Config.LocalAs = b.Global.Config.As
diff --git a/config/serve.go b/config/serve.go
index 21196433..6f49d0da 100644
--- a/config/serve.go
+++ b/config/serve.go
@@ -86,6 +86,8 @@ func UpdateConfig(curC, newC *BgpConfigSet) ([]Neighbor, []Neighbor, []Neighbor,
if idx := inSlice(n, curC.Neighbors); idx < 0 {
added = append(added, n)
} else if !n.Equal(&curC.Neighbors[idx]) {
+ log.Debug("current neighbor config:", curC.Neighbors[idx])
+ log.Debug("new neighbor config:", n)
updated = append(updated, n)
}
}