diff --git a/libnetwork/ipvs/ipvs.go b/libnetwork/ipvs/ipvs.go index effbb716eb..ab10717089 100644 --- a/libnetwork/ipvs/ipvs.go +++ b/libnetwork/ipvs/ipvs.go @@ -53,13 +53,15 @@ type SvcStats struct { // Destination defines an IPVS destination (real server) in its // entirety. type Destination struct { - Address net.IP - Port uint16 - Weight int - ConnectionFlags uint32 - AddressFamily uint16 - UpperThreshold uint32 - LowerThreshold uint32 + Address net.IP + Port uint16 + Weight int + ConnectionFlags uint32 + AddressFamily uint16 + UpperThreshold uint32 + LowerThreshold uint32 + ActiveConnections int + InactiveConnections int } // Handle provides a namespace specific ipvs handle to program ipvs diff --git a/libnetwork/ipvs/netlink.go b/libnetwork/ipvs/netlink.go index f88057f7b7..3c7b1a562a 100644 --- a/libnetwork/ipvs/netlink.go +++ b/libnetwork/ipvs/netlink.go @@ -439,6 +439,10 @@ func assembleDestination(attrs []syscall.NetlinkRouteAttr) (*Destination, error) d.LowerThreshold = native.Uint32(attr.Value) case ipvsDestAttrAddressFamily: d.AddressFamily = native.Uint16(attr.Value) + case ipvsDestAttrActiveConnections: + d.ActiveConnections = int(native.Uint16(attr.Value)) + case ipvsDestAttrInactiveConnections: + d.InactiveConnections = int(native.Uint16(attr.Value)) } } return &d, nil