diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/server.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/server/server.go b/server/server.go index 4d0088ad..1bfc5d51 100644 --- a/server/server.go +++ b/server/server.go @@ -2841,7 +2841,14 @@ func (server *BgpServer) handleModRpki(grpcReq *GrpcRequest) { isMonitored := server.isRpkiMonitored() for _, rf := range server.globalRib.GetRFlist() { if t, ok := server.globalRib.Tables[rf]; ok { - for _, dst := range t.GetDestinations() { + dsts := t.GetDestinations() + if arg.Prefix != "" { + _, prefix, _ := net.ParseCIDR(arg.Prefix) + if dst := t.GetDestination(prefix.String()); dst != nil { + dsts = map[string]*table.Destination{prefix.String(): dst} + } + } + for _, dst := range dsts { if rr := server.roaManager.validate(dst.GetAllKnownPathList(), isMonitored); isMonitored { send := make([]*api.ROAResult, 0, len(rr)) for _, r := range rr { |