diff --git a/src/runtime/virtcontainers/bridgedmacvlan_endpoint.go b/src/runtime/virtcontainers/bridgedmacvlan_endpoint.go index bbfc6bef6c..8c7e78b7b7 100644 --- a/src/runtime/virtcontainers/bridgedmacvlan_endpoint.go +++ b/src/runtime/virtcontainers/bridgedmacvlan_endpoint.go @@ -18,6 +18,8 @@ type BridgedMacvlanEndpoint struct { EndpointProperties NetworkInfo EndpointType EndpointType PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } func createBridgedMacvlanNetworkEndpoint(idx int, ifName string, interworkingModel NetInterworkingModel) (*BridgedMacvlanEndpoint, error) { @@ -136,3 +138,21 @@ func (endpoint *BridgedMacvlanEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.NetPair = *netpair } } + +func (endpoint *BridgedMacvlanEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *BridgedMacvlanEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *BridgedMacvlanEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *BridgedMacvlanEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/endpoint.go b/src/runtime/virtcontainers/endpoint.go index ccbb0e1719..7a570085ad 100644 --- a/src/runtime/virtcontainers/endpoint.go +++ b/src/runtime/virtcontainers/endpoint.go @@ -29,6 +29,11 @@ type Endpoint interface { save() persistapi.NetworkEndpoint load(persistapi.NetworkEndpoint) + + GetRxRateLimiter() bool + SetRxRateLimiter() error + GetTxRateLimiter() bool + SetTxRateLimiter() error } // EndpointType identifies the type of the network endpoint. diff --git a/src/runtime/virtcontainers/ipvlan_endpoint.go b/src/runtime/virtcontainers/ipvlan_endpoint.go index 27bc4c25ce..a9c39c505a 100644 --- a/src/runtime/virtcontainers/ipvlan_endpoint.go +++ b/src/runtime/virtcontainers/ipvlan_endpoint.go @@ -18,6 +18,8 @@ type IPVlanEndpoint struct { EndpointProperties NetworkInfo EndpointType EndpointType PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } func createIPVlanNetworkEndpoint(idx int, ifName string) (*IPVlanEndpoint, error) { @@ -139,3 +141,21 @@ func (endpoint *IPVlanEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.NetPair = *netpair } } + +func (endpoint *IPVlanEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *IPVlanEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *IPVlanEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *IPVlanEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/macvtap_endpoint.go b/src/runtime/virtcontainers/macvtap_endpoint.go index 59ed7d952a..7a40d814ae 100644 --- a/src/runtime/virtcontainers/macvtap_endpoint.go +++ b/src/runtime/virtcontainers/macvtap_endpoint.go @@ -19,6 +19,8 @@ type MacvtapEndpoint struct { VMFds []*os.File VhostFds []*os.File PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } func createMacvtapNetworkEndpoint(netInfo NetworkInfo) (*MacvtapEndpoint, error) { @@ -121,3 +123,21 @@ func (endpoint *MacvtapEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.PCIAddr = s.Macvtap.PCIAddr } } + +func (endpoint *MacvtapEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *MacvtapEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *MacvtapEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *MacvtapEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/physical_endpoint.go b/src/runtime/virtcontainers/physical_endpoint.go index c89d67edd8..4a22f2c00b 100644 --- a/src/runtime/virtcontainers/physical_endpoint.go +++ b/src/runtime/virtcontainers/physical_endpoint.go @@ -231,3 +231,21 @@ func (endpoint *PhysicalEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.VendorDeviceID = s.Physical.VendorDeviceID } } + +// unsupported +func (endpoint *PhysicalEndpoint) GetRxRateLimiter() bool { + return false +} + +func (endpoint *PhysicalEndpoint) SetRxRateLimiter() error { + return fmt.Errorf("rx rate limiter is unsupported for physical endpoint") +} + +// unsupported +func (endpoint *PhysicalEndpoint) GetTxRateLimiter() bool { + return false +} + +func (endpoint *PhysicalEndpoint) SetTxRateLimiter() error { + return fmt.Errorf("tx rate limiter is unsupported for physical endpoint") +} diff --git a/src/runtime/virtcontainers/tap_endpoint.go b/src/runtime/virtcontainers/tap_endpoint.go index bb9bda61d8..1741ce12af 100644 --- a/src/runtime/virtcontainers/tap_endpoint.go +++ b/src/runtime/virtcontainers/tap_endpoint.go @@ -21,6 +21,8 @@ type TapEndpoint struct { EndpointProperties NetworkInfo EndpointType EndpointType PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } // Properties returns the properties of the tap interface. @@ -207,3 +209,21 @@ func (endpoint *TapEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.TapInterface = *tapif } } + +func (endpoint *TapEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *TapEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *TapEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *TapEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/tuntap_endpoint.go b/src/runtime/virtcontainers/tuntap_endpoint.go index 98a680b38d..631024cad0 100644 --- a/src/runtime/virtcontainers/tuntap_endpoint.go +++ b/src/runtime/virtcontainers/tuntap_endpoint.go @@ -23,6 +23,8 @@ type TuntapEndpoint struct { EndpointProperties NetworkInfo EndpointType EndpointType PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } // Properties returns the properties of the tap interface. @@ -212,3 +214,21 @@ func (endpoint *TuntapEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.TuntapInterface = *tuntapif } } + +func (endpoint *TuntapEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *TuntapEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *TuntapEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *TuntapEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/veth_endpoint.go b/src/runtime/virtcontainers/veth_endpoint.go index 36f4cd7187..e019b701a9 100644 --- a/src/runtime/virtcontainers/veth_endpoint.go +++ b/src/runtime/virtcontainers/veth_endpoint.go @@ -18,6 +18,8 @@ type VethEndpoint struct { EndpointProperties NetworkInfo EndpointType EndpointType PCIAddr string + RxRateLimiter bool + TxRateLimiter bool } func createVethNetworkEndpoint(idx int, ifName string, interworkingModel NetInterworkingModel) (*VethEndpoint, error) { @@ -162,3 +164,21 @@ func (endpoint *VethEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.NetPair = *netpair } } + +func (endpoint *VethEndpoint) GetRxRateLimiter() bool { + return endpoint.RxRateLimiter +} + +func (endpoint *VethEndpoint) SetRxRateLimiter() error { + endpoint.RxRateLimiter = true + return nil +} + +func (endpoint *VethEndpoint) GetTxRateLimiter() bool { + return endpoint.TxRateLimiter +} + +func (endpoint *VethEndpoint) SetTxRateLimiter() error { + endpoint.TxRateLimiter = true + return nil +} diff --git a/src/runtime/virtcontainers/vhostuser_endpoint.go b/src/runtime/virtcontainers/vhostuser_endpoint.go index 761619c839..fb234957c7 100644 --- a/src/runtime/virtcontainers/vhostuser_endpoint.go +++ b/src/runtime/virtcontainers/vhostuser_endpoint.go @@ -169,3 +169,21 @@ func (endpoint *VhostUserEndpoint) load(s persistapi.NetworkEndpoint) { endpoint.PCIAddr = s.VhostUser.PCIAddr } } + +// unsupported +func (endpoint *VhostUserEndpoint) GetRxRateLimiter() bool { + return false +} + +func (endpoint *VhostUserEndpoint) SetRxRateLimiter() error { + return fmt.Errorf("rx rate limiter is unsupported for vhost user endpoint") +} + +// unsupported +func (endpoint *VhostUserEndpoint) GetTxRateLimiter() bool { + return false +} + +func (endpoint *VhostUserEndpoint) SetTxRateLimiter() error { + return fmt.Errorf("tx rate limiter is unsupported for vhost user endpoint") +}