diff --git a/cmd/ris/api/ris.pb.go b/cmd/ris/api/ris.pb.go index 8ce66b56780977b243b0aafa2c2234a5b25932cc..f6af06929d075612919cca76e4954f9046d124c9 100644 --- a/cmd/ris/api/ris.pb.go +++ b/cmd/ris/api/ris.pb.go @@ -501,6 +501,7 @@ func (m *RIBUpdate) GetRoute() *api1.Route { type DumpRIBRequest struct { Router string `protobuf:"bytes,1,opt,name=router,proto3" json:"router,omitempty"` VrfId uint64 `protobuf:"varint,2,opt,name=vrf_id,json=vrfId,proto3" json:"vrf_id,omitempty"` + Vrf string `protobuf:"bytes,4,opt,name=vrf,proto3" json:"vrf,omitempty"` Afisafi DumpRIBRequest_AFISAFI `protobuf:"varint,3,opt,name=afisafi,proto3,enum=bio.ris.DumpRIBRequest_AFISAFI" json:"afisafi,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -546,6 +547,13 @@ func (m *DumpRIBRequest) GetVrfId() uint64 { return 0 } +func (m *DumpRIBRequest) GetVrf() string { + if m != nil { + return m.Vrf + } + return "" +} + func (m *DumpRIBRequest) GetAfisafi() DumpRIBRequest_AFISAFI { if m != nil { return m.Afisafi @@ -740,49 +748,49 @@ func init() { } var fileDescriptor_ffe1202aa518913f = []byte{ - // 670 bytes of a gzipped FileDescriptorProto + // 669 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x5d, 0x4f, 0xdb, 0x3c, 0x14, 0x26, 0x04, 0x1a, 0x7a, 0xfa, 0x42, 0x8b, 0x79, 0x79, 0x09, 0x79, 0x2f, 0xd6, 0x45, 0x13, 0x2a, 0x42, 0x4b, 0x51, 0x99, 0x98, 0xa6, 0x7d, 0x09, 0x84, 0xa8, 0x22, 0xc1, 0x56, 0x19, 0xb1, 0x8b, 0xdd, 0x54, 0x69, 0xe3, 0x30, 0x4b, 0xe4, 0x63, 0xb6, 0x1b, 0xd1, 0xcb, 0xfd, 0x82, 0xfd, - 0x8c, 0xfd, 0x8c, 0xfd, 0xb5, 0x29, 0x76, 0x9a, 0xa6, 0x83, 0xb1, 0xb1, 0x4d, 0xdc, 0xb4, 0xf6, - 0x39, 0x7e, 0x7c, 0x9e, 0xe7, 0xd1, 0xf1, 0x09, 0xec, 0x5d, 0x50, 0xf1, 0x61, 0x34, 0x70, 0x86, - 0x71, 0xd8, 0x1e, 0xd0, 0xf8, 0x31, 0x8b, 0x47, 0x82, 0x46, 0x17, 0x6a, 0xed, 0xb7, 0x87, 0xa1, - 0xdf, 0x66, 0x94, 0xb7, 0xbd, 0x84, 0x66, 0xff, 0x4e, 0xc2, 0x62, 0x11, 0x23, 0x63, 0x40, 0x63, - 0x87, 0x51, 0x6e, 0xb5, 0x6f, 0x47, 0x47, 0x44, 0x48, 0x64, 0x44, 0x84, 0x42, 0x5a, 0x3f, 0x29, - 0x97, 0x6d, 0x89, 0x2a, 0x96, 0xad, 0x14, 0xc8, 0x4e, 0x00, 0x4e, 0x7a, 0xa7, 0x98, 0x7c, 0x1c, - 0x11, 0x2e, 0xd0, 0x7f, 0x50, 0x91, 0x49, 0x66, 0x6a, 0x4d, 0xad, 0x55, 0xc5, 0xf9, 0x0e, 0xad, - 0x43, 0x25, 0x65, 0x41, 0x9f, 0xfa, 0xe6, 0x7c, 0x53, 0x6b, 0x2d, 0xe0, 0xc5, 0x94, 0x05, 0xae, - 0x8f, 0x1a, 0xa0, 0xa7, 0x2c, 0x30, 0x17, 0xe4, 0xd9, 0x6c, 0x89, 0x1e, 0x82, 0x9e, 0x04, 0x57, - 0xa6, 0xde, 0xd4, 0x5a, 0xb5, 0x4e, 0xdd, 0xc9, 0xb4, 0x64, 0x04, 0x7b, 0x8c, 0x04, 0xf4, 0x0a, - 0x67, 0x39, 0xfb, 0x29, 0xd4, 0x64, 0x45, 0x9e, 0xc4, 0x11, 0x27, 0xa8, 0x95, 0x97, 0xe4, 0xa6, - 0xd6, 0xd4, 0x5b, 0xb5, 0x4e, 0x43, 0x82, 0x14, 0x45, 0x9c, 0xfd, 0xe6, 0x24, 0x78, 0x46, 0xb5, - 0x4b, 0xc4, 0x3d, 0x53, 0x95, 0x15, 0xef, 0x4c, 0x35, 0x85, 0x46, 0x97, 0x88, 0x93, 0x38, 0xba, - 0x20, 0xec, 0x3e, 0x09, 0xbf, 0x84, 0xd5, 0x52, 0xdd, 0x3b, 0xd3, 0xfe, 0xaa, 0xc1, 0xea, 0xdb, - 0x01, 0x27, 0x2c, 0x25, 0xd8, 0x3d, 0xfc, 0x6b, 0xc4, 0x5f, 0x80, 0xe1, 0x05, 0x94, 0x7b, 0x01, - 0x95, 0xe4, 0x57, 0x3a, 0xb6, 0x93, 0x37, 0xb9, 0x73, 0xad, 0x9a, 0x73, 0x70, 0xec, 0x9e, 0x1d, - 0x1c, 0xbb, 0x78, 0x02, 0xb1, 0x77, 0xc0, 0xc8, 0x63, 0xa8, 0x0e, 0x35, 0xb7, 0x97, 0x3e, 0x39, - 0x8f, 0xe8, 0xd0, 0xe3, 0xa2, 0x31, 0x97, 0x07, 0xf6, 0x27, 0x01, 0xcd, 0xfe, 0xa4, 0x41, 0x15, - 0xbb, 0x87, 0xe7, 0x89, 0xef, 0x09, 0x82, 0x1e, 0xc1, 0xb2, 0xe7, 0xa7, 0x84, 0x09, 0xca, 0x49, - 0x48, 0x22, 0x21, 0x05, 0x2c, 0xe1, 0xd9, 0x20, 0xda, 0x82, 0x3a, 0xe5, 0x7d, 0x1a, 0x51, 0x41, - 0xbd, 0xcb, 0xbe, 0x3f, 0x0a, 0x13, 0x49, 0x73, 0x09, 0x2f, 0x53, 0xee, 0xaa, 0xe8, 0xd1, 0x28, - 0x4c, 0xd0, 0x16, 0x2c, 0x4a, 0xe5, 0x52, 0xee, 0x4d, 0x36, 0xaa, 0xb4, 0xfd, 0x45, 0x83, 0x95, - 0x0c, 0xf0, 0xfb, 0x16, 0x3e, 0xfb, 0xde, 0xb0, 0x07, 0x85, 0x61, 0xb3, 0x17, 0xff, 0xa1, 0x5b, - 0xfb, 0xf0, 0x4f, 0x71, 0x5f, 0x72, 0x39, 0x9e, 0x2a, 0xd4, 0x6e, 0x57, 0xb8, 0x26, 0xdb, 0x4c, - 0x86, 0x18, 0xcf, 0xa9, 0xd8, 0xef, 0xa0, 0xa2, 0x22, 0x68, 0x13, 0x96, 0xf8, 0x98, 0xf7, 0x23, - 0x2f, 0x24, 0xb9, 0x5e, 0x83, 0x8f, 0xf9, 0x1b, 0x2f, 0x24, 0x68, 0x03, 0x0c, 0x25, 0x98, 0x9b, - 0xf3, 0x4d, 0xbd, 0xb5, 0x80, 0x2b, 0x52, 0x31, 0x47, 0x26, 0x18, 0x9e, 0xef, 0x33, 0xc2, 0xb9, - 0x94, 0x5c, 0xc5, 0x93, 0xad, 0xfd, 0x1a, 0x50, 0xb9, 0x58, 0xde, 0xd4, 0xdb, 0x60, 0x28, 0x0f, - 0x27, 0x5d, 0x5d, 0x2f, 0x2c, 0x52, 0x47, 0xf1, 0x24, 0xdf, 0xf9, 0xac, 0xc3, 0x26, 0x56, 0xb3, - 0xd0, 0x8d, 0x82, 0x98, 0x85, 0x9e, 0xa0, 0x71, 0x74, 0x46, 0x58, 0x4a, 0x87, 0x04, 0x75, 0x40, - 0x3f, 0xe9, 0x9d, 0xa2, 0xb5, 0x02, 0x3e, 0x1d, 0x87, 0xd6, 0xbf, 0xb3, 0x41, 0x55, 0xda, 0x9e, - 0xcb, 0x30, 0x5d, 0x22, 0x4a, 0x98, 0xe9, 0x5c, 0x2a, 0x61, 0x4a, 0xa3, 0xc3, 0x9e, 0x43, 0x5d, - 0x35, 0xbd, 0x14, 0x27, 0x64, 0xcd, 0x9c, 0x9a, 0x31, 0xd2, 0xfa, 0xff, 0xc6, 0x5c, 0x71, 0xd1, - 0x11, 0x54, 0x8b, 0x37, 0x8e, 0x36, 0xcb, 0x67, 0x67, 0xe6, 0x8d, 0x65, 0xdd, 0x94, 0x2a, 0x6e, - 0x79, 0x05, 0x30, 0x7d, 0x7b, 0x25, 0x3a, 0xd7, 0x1e, 0xa4, 0x85, 0xa6, 0xc6, 0x4e, 0x1e, 0xd6, - 0xae, 0x86, 0x9e, 0x83, 0x91, 0xb7, 0x0e, 0xda, 0xf8, 0x41, 0x73, 0x5a, 0xeb, 0xd7, 0x13, 0xc9, - 0xe5, 0x78, 0x57, 0x3b, 0xdc, 0x79, 0xbf, 0xfd, 0xcb, 0x9f, 0xc6, 0x41, 0x45, 0x7e, 0xa8, 0xf6, - 0xbe, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc5, 0xf1, 0x19, 0x78, 0x4e, 0x07, 0x00, 0x00, + 0x9e, 0x5d, 0xed, 0xaf, 0x4d, 0xb1, 0xd3, 0x34, 0x1d, 0x8c, 0x0d, 0x0d, 0x71, 0xd3, 0xda, 0xe7, + 0xf8, 0xf1, 0xf3, 0x9c, 0x47, 0xc7, 0x27, 0xb0, 0x77, 0x41, 0xc5, 0xa7, 0xd1, 0xc0, 0x19, 0xc6, + 0x61, 0x7b, 0x40, 0xe3, 0xa7, 0x2c, 0x1e, 0x09, 0x1a, 0x5d, 0xa8, 0xb5, 0xdf, 0x1e, 0x86, 0x7e, + 0x9b, 0x51, 0xde, 0xf6, 0x12, 0x9a, 0xfd, 0x3b, 0x09, 0x8b, 0x45, 0x8c, 0x8c, 0x01, 0x8d, 0x1d, + 0x46, 0xb9, 0xd5, 0xbe, 0x1d, 0x1d, 0x11, 0x21, 0x91, 0x11, 0x11, 0x0a, 0x69, 0xfd, 0x86, 0x2e, + 0xdb, 0x12, 0x45, 0x96, 0xad, 0x14, 0xc8, 0x4e, 0x00, 0x4e, 0x7a, 0xa7, 0x98, 0x7c, 0x1e, 0x11, + 0x2e, 0xd0, 0x7f, 0x50, 0x91, 0x49, 0x66, 0x6a, 0x4d, 0xad, 0x55, 0xc5, 0xf9, 0x0e, 0xad, 0x43, + 0x25, 0x65, 0x41, 0x9f, 0xfa, 0xe6, 0x7c, 0x53, 0x6b, 0x2d, 0xe0, 0xc5, 0x94, 0x05, 0xae, 0x8f, + 0x1a, 0xa0, 0xa7, 0x2c, 0x30, 0x17, 0xe4, 0xd9, 0x6c, 0x89, 0x1e, 0x83, 0x9e, 0x04, 0x57, 0xa6, + 0xde, 0xd4, 0x5a, 0xb5, 0x4e, 0xdd, 0xc9, 0x6a, 0xc9, 0x04, 0xf6, 0x18, 0x09, 0xe8, 0x15, 0xce, + 0x72, 0xf6, 0x73, 0xa8, 0x49, 0x46, 0x9e, 0xc4, 0x11, 0x27, 0xa8, 0x95, 0x53, 0x72, 0x53, 0x6b, + 0xea, 0xad, 0x5a, 0xa7, 0x21, 0x41, 0x4a, 0x22, 0xce, 0x7e, 0x73, 0x11, 0x3c, 0x93, 0xda, 0x25, + 0xe2, 0x81, 0xa5, 0x4a, 0xc6, 0x3b, 0x4b, 0x4d, 0xa1, 0xd1, 0x25, 0xe2, 0x24, 0x8e, 0x2e, 0x08, + 0x7b, 0x48, 0xc1, 0xaf, 0x61, 0xb5, 0xc4, 0x7b, 0x67, 0xd9, 0xdf, 0x35, 0x58, 0x7d, 0x3f, 0xe0, + 0x84, 0xa5, 0x04, 0xbb, 0x87, 0xf7, 0x26, 0xfc, 0x15, 0x18, 0x5e, 0x40, 0xb9, 0x17, 0x50, 0x29, + 0x7e, 0xa5, 0x63, 0x3b, 0x79, 0x93, 0x3b, 0xd7, 0xd8, 0x9c, 0x83, 0x63, 0xf7, 0xec, 0xe0, 0xd8, + 0xc5, 0x13, 0x88, 0xbd, 0x03, 0x46, 0x1e, 0x43, 0x75, 0xa8, 0xb9, 0xbd, 0xf4, 0xd9, 0x79, 0x44, + 0x87, 0x1e, 0x17, 0x8d, 0xb9, 0x3c, 0xb0, 0x3f, 0x09, 0x68, 0xf6, 0x17, 0x0d, 0xaa, 0xd8, 0x3d, + 0x3c, 0x4f, 0x7c, 0x4f, 0x10, 0xf4, 0x04, 0x96, 0x3d, 0x3f, 0x25, 0x4c, 0x50, 0x4e, 0x42, 0x12, + 0x09, 0x59, 0xc0, 0x12, 0x9e, 0x0d, 0xa2, 0x2d, 0xa8, 0x53, 0xde, 0xa7, 0x11, 0x15, 0xd4, 0xbb, + 0xec, 0xfb, 0xa3, 0x30, 0x91, 0x32, 0x97, 0xf0, 0x32, 0xe5, 0xae, 0x8a, 0x1e, 0x8d, 0xc2, 0x04, + 0x6d, 0xc1, 0xa2, 0xac, 0x5c, 0x96, 0x7b, 0x93, 0x8d, 0x2a, 0x6d, 0x7f, 0xd3, 0x60, 0x25, 0x03, + 0xdc, 0xa7, 0x85, 0x2f, 0x7e, 0xb6, 0xf0, 0x51, 0x61, 0xe1, 0x2c, 0xd5, 0x5f, 0xfa, 0xb7, 0x0f, + 0xff, 0x14, 0xf7, 0x25, 0x97, 0xe3, 0x69, 0xcd, 0xda, 0xed, 0x35, 0xaf, 0xc9, 0xc6, 0x93, 0x21, + 0xc6, 0x73, 0x29, 0xf6, 0x07, 0xa8, 0xa8, 0x08, 0xda, 0x84, 0x25, 0x3e, 0xe6, 0xfd, 0xc8, 0x0b, + 0x49, 0xee, 0x80, 0xc1, 0xc7, 0xfc, 0x9d, 0x17, 0x12, 0xb4, 0x01, 0x86, 0xb2, 0x80, 0x9b, 0xf3, + 0x4d, 0xbd, 0xb5, 0x80, 0x2b, 0xd2, 0x03, 0x8e, 0x4c, 0x30, 0x3c, 0xdf, 0x67, 0x84, 0x73, 0x59, + 0x72, 0x15, 0x4f, 0xb6, 0xf6, 0x5b, 0x40, 0x65, 0xb2, 0xbc, 0xcd, 0xb7, 0xc1, 0x50, 0xae, 0x4e, + 0xfa, 0xbc, 0x5e, 0x58, 0xa4, 0x8e, 0xe2, 0x49, 0xbe, 0xf3, 0x55, 0x87, 0x4d, 0xac, 0xa6, 0xa3, + 0x1b, 0x05, 0x31, 0x0b, 0x3d, 0x41, 0xe3, 0xe8, 0x8c, 0xb0, 0x94, 0x0e, 0x09, 0xea, 0x80, 0x7e, + 0xd2, 0x3b, 0x45, 0x6b, 0x05, 0x7c, 0x3a, 0x20, 0xad, 0x7f, 0x67, 0x83, 0x8a, 0xda, 0x9e, 0xcb, + 0x30, 0x5d, 0x22, 0x4a, 0x98, 0xe9, 0xa4, 0x2a, 0x61, 0x4a, 0xc3, 0xc4, 0x9e, 0x43, 0x5d, 0x35, + 0xcf, 0x94, 0x26, 0x64, 0xcd, 0x9c, 0x9a, 0x31, 0xd2, 0xfa, 0xff, 0xc6, 0x5c, 0x71, 0xd1, 0x11, + 0x54, 0x8b, 0x57, 0x8f, 0x36, 0xcb, 0x67, 0x67, 0x26, 0x90, 0x65, 0xdd, 0x94, 0x2a, 0x6e, 0x79, + 0x03, 0x30, 0x7d, 0x8d, 0x25, 0x39, 0xd7, 0x9e, 0xa8, 0x85, 0xa6, 0xc6, 0x4e, 0x9e, 0xda, 0xae, + 0x86, 0x5e, 0x82, 0x91, 0xb7, 0x0e, 0xda, 0xf8, 0x45, 0x73, 0x5a, 0xeb, 0xd7, 0x13, 0xc9, 0xe5, + 0x78, 0x57, 0x3b, 0xdc, 0xf9, 0xb8, 0xfd, 0xc7, 0x1f, 0xcb, 0x41, 0x45, 0x7e, 0xba, 0xf6, 0x7e, + 0x04, 0x00, 0x00, 0xff, 0xff, 0x22, 0xcc, 0x06, 0xa4, 0x60, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/cmd/ris/api/ris.proto b/cmd/ris/api/ris.proto index 678a9fb4d9c28326218bf1cb8d7f77ef63dc8f87..07736c6c18f4d09674386df7f7b33f92c0eb96ab 100644 --- a/cmd/ris/api/ris.proto +++ b/cmd/ris/api/ris.proto @@ -69,6 +69,7 @@ message RIBUpdate { message DumpRIBRequest { string router = 1; uint64 vrf_id = 2; + string vrf = 4; enum AFISAFI { IPv4Unicast = 0; IPv6Unicast = 1; diff --git a/cmd/ris/risserver/server.go b/cmd/ris/risserver/server.go index f9cf5e3e24cbef912ce5fd77b4537046938e071e..ba9230161def689ed94673d9e0a60d0c668581a4 100644 --- a/cmd/ris/risserver/server.go +++ b/cmd/ris/risserver/server.go @@ -217,6 +217,11 @@ func (s *Server) ObserveRIB(req *pb.ObserveRIBRequest, stream pb.RoutingInformat // DumpRIB implements the DumpRIB RPC func (s *Server) DumpRIB(req *pb.DumpRIBRequest, stream pb.RoutingInformationService_DumpRIBServer) error { + vrfID, err := getVRFID(req) + if err != nil { + return err + } + ipVersion := netapi.IP_IPv4 switch req.Afisafi { case pb.DumpRIBRequest_IPv4Unicast: @@ -227,9 +232,9 @@ func (s *Server) DumpRIB(req *pb.DumpRIBRequest, stream pb.RoutingInformationSer return fmt.Errorf("Unknown AFI/SAFI") } - rib, err := s.getRIB(req.Router, req.VrfId, ipVersion) + rib, err := s.getRIB(req.Router, vrfID, ipVersion) if err != nil { - return wrapGetRIBErr(err, req.Router, req.VrfId, ipVersion) + return wrapGetRIBErr(err, req.Router, vrfID, ipVersion) } toSend := &pb.DumpRIBReply{ diff --git a/cmd/riscli/dump_loc_rib.go b/cmd/riscli/dump_loc_rib.go index 50e34670f72078e8b30da2ad04cc67e64ff5e11f..2baa824532e278c2032c2aa201bafc4640450351 100644 --- a/cmd/riscli/dump_loc_rib.go +++ b/cmd/riscli/dump_loc_rib.go @@ -47,7 +47,7 @@ func NewDumpLocRIBCommand() cli.Command { client := pb.NewRoutingInformationServiceClient(conn) for _, afisafi := range afisafis { fmt.Printf(" --- Dump %s ---\n", pb.DumpRIBRequest_AFISAFI_name[int32(afisafi)]) - err = dumpRIB(client, c.GlobalString("router"), c.GlobalUint64("vrf_id"), afisafi) + err = dumpRIB(client, c.GlobalString("router"), c.GlobalUint64("vrf_id"), c.GlobalString("vrf"), afisafi) if err != nil { log.Errorf("DumpRIB failed: %v", err) os.Exit(1) @@ -60,10 +60,11 @@ func NewDumpLocRIBCommand() cli.Command { return cmd } -func dumpRIB(c pb.RoutingInformationServiceClient, routerName string, vrfID uint64, afisafi pb.DumpRIBRequest_AFISAFI) error { +func dumpRIB(c pb.RoutingInformationServiceClient, routerName string, vrfID uint64, vrf string, afisafi pb.DumpRIBRequest_AFISAFI) error { client, err := c.DumpRIB(context.Background(), &pb.DumpRIBRequest{ Router: routerName, VrfId: vrfID, + Vrf: vrf, Afisafi: afisafi, }) if err != nil { diff --git a/cmd/riscli/lpm.go b/cmd/riscli/lpm.go index 1c564bcfb3a771082366ecb24829fbd6c487993a..e87e6edc1d2c5d32f210edb660cb44a89abf12d8 100644 --- a/cmd/riscli/lpm.go +++ b/cmd/riscli/lpm.go @@ -42,7 +42,7 @@ func NewLPMCommand() cli.Command { pfx := bnet.NewPfx(ipAddr, pfxLen) client := pb.NewRoutingInformationServiceClient(conn) - err = lpm(client, c.GlobalString("router"), c.GlobalUint64("vrf_id"), pfx) + err = lpm(client, c.GlobalString("router"), c.GlobalUint64("vrf_id"), c.GlobalString("vrf"), pfx) if err != nil { log.Fatalf("LPM failed: %v", err) } @@ -53,10 +53,11 @@ func NewLPMCommand() cli.Command { return cmd } -func lpm(c pb.RoutingInformationServiceClient, routerName string, vrfID uint64, pfx bnet.Prefix) error { +func lpm(c pb.RoutingInformationServiceClient, routerName string, vrfID uint64, vrf string, pfx bnet.Prefix) error { resp, err := c.LPM(context.Background(), &pb.LPMRequest{ Router: routerName, VrfId: vrfID, + Vrf: vrf, Pfx: pfx.ToProto(), }) if err != nil { diff --git a/cmd/riscli/main.go b/cmd/riscli/main.go index 3350b307fc255c58ef7ed855a12031c672f36bf3..43ce139feffdd2420649d23ba2d902290d7147eb 100644 --- a/cmd/riscli/main.go +++ b/cmd/riscli/main.go @@ -27,6 +27,11 @@ func main() { Usage: "VRF ID", Value: 0, }, + cli.StringFlag{ + Name: "vrf", + Usage: "VRF", + Value: "", + }, } app.Commands = []cli.Command{