summaryrefslogtreecommitdiffhomepage
path: root/server/grpc_server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/grpc_server.go')
-rw-r--r--server/grpc_server.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/server/grpc_server.go b/server/grpc_server.go
index 6d3ddf29..b3da4b3d 100644
--- a/server/grpc_server.go
+++ b/server/grpc_server.go
@@ -88,6 +88,7 @@ const (
REQ_VRFS
REQ_VRF_MOD
REQ_MOD_PATH
+ REQ_GLOBAL_POLICY
)
const GRPC_PORT = 8080
@@ -269,7 +270,15 @@ func (s *Server) ModPath(stream api.GobgpApi_ModPathServer) error {
}
func (s *Server) GetNeighborPolicy(ctx context.Context, arg *api.Arguments) (*api.ApplyPolicy, error) {
- req := NewGrpcRequest(REQ_NEIGHBOR_POLICY, arg.Name, bgp.RouteFamily(arg.Rf), nil)
+ if arg.Resource != api.Resource_LOCAL && arg.Resource != api.Resource_GLOBAL {
+ return nil, fmt.Errorf("unsupported resource: %s", arg.Resource)
+ }
+ var req *GrpcRequest
+ if arg.Resource == api.Resource_LOCAL {
+ req = NewGrpcRequest(REQ_NEIGHBOR_POLICY, arg.Name, bgp.RouteFamily(arg.Rf), nil)
+ } else {
+ req = NewGrpcRequest(REQ_GLOBAL_POLICY, "", bgp.RouteFamily(arg.Rf), nil)
+ }
s.bgpServerCh <- req
res := <-req.ResponseCh