@@ -288,7 +288,7 @@ func (nhg *nextHopGroup) updateNextHopGroupMember(ctx context.Context, nhgid, mi
288288func (nhg * nextHopGroup ) RemoveNextHopGroup (_ context.Context , req * saipb.RemoveNextHopGroupRequest ) (* saipb.RemoveNextHopGroupResponse , error ) {
289289 oid := req .GetOid ()
290290 if _ , ok := nhg .groups [oid ]; ! ok {
291- return nil , status .Errorf (codes .FailedPrecondition , "group %d does not exist" , oid )
291+ return nil , status .Errorf (codes .NotFound , "group %d does not exist" , oid )
292292 }
293293 delete (nhg .groups , oid )
294294
@@ -306,6 +306,19 @@ func (nhg *nextHopGroup) RemoveNextHopGroup(_ context.Context, req *saipb.Remove
306306 return & saipb.RemoveNextHopGroupResponse {}, nil
307307}
308308
309+ // RemoveNextHopGroups removes multiple next hop groups specified in the OID.
310+ func (nhg * nextHopGroup ) RemoveNextHopGroups (ctx context.Context , req * saipb.RemoveNextHopGroupsRequest ) (* saipb.RemoveNextHopGroupsResponse , error ) {
311+ resp := & saipb.RemoveNextHopGroupsResponse {}
312+ for _ , req := range req .GetReqs () {
313+ res , err := attrmgr .InvokeAndSave (ctx , nhg .mgr , nhg .RemoveNextHopGroup , req )
314+ if err != nil {
315+ return nil , err
316+ }
317+ resp .Resps = append (resp .Resps , res )
318+ }
319+ return resp , nil
320+ }
321+
309322// CreateNextHopGroupMember adds a next hop to a next hop group.
310323func (nhg * nextHopGroup ) CreateNextHopGroupMember (ctx context.Context , req * saipb.CreateNextHopGroupMemberRequest ) (* saipb.CreateNextHopGroupMemberResponse , error ) {
311324 nhgid := req .GetNextHopGroupId ()
@@ -357,6 +370,19 @@ func (nhg *nextHopGroup) RemoveNextHopGroupMember(ctx context.Context, req *saip
357370 return & saipb.RemoveNextHopGroupMemberResponse {}, nil
358371}
359372
373+ // RemoveNextHopGroupMembers removes multiple next hop group members specified in the OID.
374+ func (nhg * nextHopGroup ) RemoveNextHopGroupMembers (ctx context.Context , r * saipb.RemoveNextHopGroupMembersRequest ) (* saipb.RemoveNextHopGroupMembersResponse , error ) {
375+ resp := & saipb.RemoveNextHopGroupMembersResponse {}
376+ for _ , req := range r .GetReqs () {
377+ res , err := attrmgr .InvokeAndSave (ctx , nhg .mgr , nhg .RemoveNextHopGroupMember , req )
378+ if err != nil {
379+ return nil , err
380+ }
381+ resp .Resps = append (resp .Resps , res )
382+ }
383+ return resp , nil
384+ }
385+
360386type nextHop struct {
361387 saipb.UnimplementedNextHopServer
362388 mgr * attrmgr.AttrMgr
0 commit comments