| 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.