Design document | |
---|---|
Revision | v1 |
Status | released (6.5) |
Review | create new issue |
It has been possible to enable and disable GRO and other “ethtool” features on PIFs for a long time, but there was never an official API for it. Now there is.
The former way to enable GRO via the CLI is as follows:
xe pif-param-set uuid=<pif-uuid> other-config:ethtool-gro=on
xe pif-plug uuid=<pif-uuid>
The other-config
field is a grab-bag of options that are not clearly defined.
The options exposed through other-config
are mostly experimental features, and
the interface is not considered stable. Furthermore, the field is read/write
and does not have any input validation, and cannot not trigger any actions
immediately. The latter is why it is needed to call pif-plug
after setting
the ethtool-gro
key, in order to actually make things happen.
New field:
PIF.properties
of type (string -> string) map
.gro
key in their properties
, with possible values on
and off
. There are currently no other properties defined.other-config:ethtool-gro
key present on the PIF, it will be treated as an override of the gro
key in PIF.properties
.New function:
void PIF.set_property (PIF ref, string, string)
.properties
field.CANNOT_CHANGE_PIF_PROPERTIES
.INVALID_VALUE
.properties
of the associated bond slaves will also be set to same value.plug
is needed). This includes any VLANs that are on top of the PIF to-be-changed, as well as any bond slaves.properties
field set to "gro" -> "on"
. This includes PIFs obtained after a fresh installation of XenServer, as well as PIFs created using PIF.introduce
or PIF.scan
. In other words, GRO will be “on” by default.PIF.properties
field, will give every physical and bond PIF a properties
field set to "gro" -> "on"
. In other words, GRO will be “on” by default after an upgrade.PIF.properties
. If not, the bond.create
call will fail with INCOMPATIBLE_BOND_PROPERTIES
.properties
of the bond PIF will be equal to the properties of the bond slaves.PIF.properties
field is exposed through xe pif-list
and xe pif-param-list
as usual.PIF.set_property
call is exposed through xe pif-param-set
. For example: xe pif-param-set uuid=<pif-uuid> properties:gro=off
.