Merge pull request #52015 from m1093782566/flush-ipvs
Automatic merge from submit-queue (batch tested with PRs 51929, 52015, 51906, 52069, 51542). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.. Support IPVS Flush API **What this PR does / why we need it**: Currently, we implement IPVS flush API by deleting IPVS services one by one, which is inefficient. **Which issue this PR fixes**: fixes #52070 **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
This commit is contained in:
7
vendor/github.com/docker/libnetwork/ipvs/ipvs.go
generated
vendored
7
vendor/github.com/docker/libnetwork/ipvs/ipvs.go
generated
vendored
@@ -116,6 +116,13 @@ func (i *Handle) DelService(s *Service) error {
|
||||
return i.doCmd(s, nil, ipvsCmdDelService)
|
||||
}
|
||||
|
||||
// Flush deletes all existing services in the passed
|
||||
// handle.
|
||||
func (i *Handle) Flush() error {
|
||||
_, err := i.doCmdWithoutAttr(ipvsCmdFlush)
|
||||
return err
|
||||
}
|
||||
|
||||
// NewDestination creates a new real server in the passed ipvs
|
||||
// service which should already be existing in the passed handle.
|
||||
func (i *Handle) NewDestination(s *Service, d *Destination) error {
|
||||
|
7
vendor/github.com/docker/libnetwork/ipvs/netlink.go
generated
vendored
7
vendor/github.com/docker/libnetwork/ipvs/netlink.go
generated
vendored
@@ -402,6 +402,13 @@ func (i *Handle) doGetServicesCmd(svc *Service) ([]*Service, error) {
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// doCmdWithoutAttr a simple wrapper of netlink socket execute command
|
||||
func (i *Handle) doCmdWithoutAttr(cmd uint8) ([][]byte, error) {
|
||||
req := newIPVSRequest(cmd)
|
||||
req.Seq = atomic.AddUint32(&i.seq, 1)
|
||||
return execute(i.sock, req, 0)
|
||||
}
|
||||
|
||||
func assembleDestination(attrs []syscall.NetlinkRouteAttr) (*Destination, error) {
|
||||
|
||||
var d Destination
|
||||
|
Reference in New Issue
Block a user