From 4cc7a81e8f5ae3c6584f26a1d9300e0522fdab7d Mon Sep 17 00:00:00 2001 From: Eiichiro Watanabe Date: Mon, 12 Nov 2018 14:41:58 +0900 Subject: Support AdminDown from config --- api/gobgp.pb.go | 1 + api/gobgp.proto | 1 + internal/pkg/config/util.go | 1 + pkg/server/grpc_server.go | 1 + 4 files changed, 4 insertions(+) diff --git a/api/gobgp.pb.go b/api/gobgp.pb.go index e2caba93..bb41655a 100644 --- a/api/gobgp.pb.go +++ b/api/gobgp.pb.go @@ -2958,6 +2958,7 @@ type PeerConf struct { Vrf string `protobuf:"bytes,15,opt,name=vrf" json:"vrf,omitempty"` AllowOwnAs uint32 `protobuf:"varint,16,opt,name=allow_own_as,json=allowOwnAs" json:"allow_own_as,omitempty"` ReplacePeerAs bool `protobuf:"varint,17,opt,name=replace_peer_as,json=replacePeerAs" json:"replace_peer_as,omitempty"` + AdminDown bool `protobuf:"varint,18,opt,name=admin_down,json=adminDown" json:"admin_down,omitempty"` } func (m *PeerConf) Reset() { *m = PeerConf{} } diff --git a/api/gobgp.proto b/api/gobgp.proto index a33e92d1..2b8e8e4a 100644 --- a/api/gobgp.proto +++ b/api/gobgp.proto @@ -622,6 +622,7 @@ message PeerConf { string vrf = 15; uint32 allow_own_as = 16; bool replace_peer_as = 17; + bool admin_down = 18; } message PeerGroupConf { diff --git a/internal/pkg/config/util.go b/internal/pkg/config/util.go index ed9d3049..70fc8cd9 100644 --- a/internal/pkg/config/util.go +++ b/internal/pkg/config/util.go @@ -456,6 +456,7 @@ func NewPeerFromConfigStruct(pconf *Neighbor) *api.Peer { AllowOwnAs: uint32(pconf.AsPathOptions.Config.AllowOwnAs), RemovePrivateAs: removePrivateAs, ReplacePeerAs: pconf.AsPathOptions.Config.ReplacePeerAs, + AdminDown: pconf.Config.AdminDown, }, State: &api.PeerState{ SessionState: api.PeerState_SessionState(api.PeerState_SessionState_value[strings.ToUpper(string(s.SessionState))]), diff --git a/pkg/server/grpc_server.go b/pkg/server/grpc_server.go index 0aac4cf0..a0aef07a 100644 --- a/pkg/server/grpc_server.go +++ b/pkg/server/grpc_server.go @@ -565,6 +565,7 @@ func newNeighborFromAPIStruct(a *api.Peer) (*config.Neighbor, error) { pconf.Config.PeerGroup = a.Conf.PeerGroup pconf.Config.PeerType = config.IntToPeerTypeMap[int(a.Conf.PeerType)] pconf.Config.NeighborAddress = a.Conf.NeighborAddress + pconf.Config.AdminDown = a.Conf.AdminDown pconf.Config.NeighborInterface = a.Conf.NeighborInterface pconf.Config.Vrf = a.Conf.Vrf pconf.AsPathOptions.Config.AllowOwnAs = uint8(a.Conf.AllowOwnAs) -- cgit v1.2.3