networkd: don't disable GRO by default

Imported from xcp-idl.git 00439e84bb82460950405f8e06d68d7c0dca952d

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Imported-by: John Else <john.else@citrix.com>
Update last released database schema version

Signed-off-by: John Else <john.else@citrix.com>
Add PIF.properties field

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Add PIF.set_property

We'll add some constraints to this in the next patches.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Add creedence release

Signed-off-by: John Else <john.else@citrix.com>
Fix up release versions in datamodel

Signed-off-by: John Else <john.else@citrix.com>
Set PIF properties when creating a new PIF, depending on the type of PIF

The only property that we currently recognise is "gro", which by default has
the value "on".

GRO is a low-level property of a network interface, which applies to physical
PIFs, and to a bond as a collection of physical PIFs.

We therefore currently distinguish the following cases:
* A physical PIF gets the default properties when introduced.
* A bond PIF inherits the PIF properties from the primary slave.
* A VLAN or Tunnel PIF does not have properties. It is assumed to implicitly
  inherit the properties from the PIF it is based on.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Validate input to PIF.set_property

We currently only accept the "gro" property, which can be "on" of "off".

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Only allow PIF.properties to change on unbonded physical PIFs or bond PIFs

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
When creating a bond, all PIFs must have the same properties

And those properties will become the bond's properties.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Add PIF.properties to the CLI

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Set default PIF properties on upgrade

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>

Conflicts:
	ocaml/idl/datamodel.ml
	ocaml/xapi/xapi_db_upgrade.ml
When changing PIF properties of a bond master, also update its slaves

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Translate PIF.properties to networkd config, and execute them

For the Linux bridge case, it is important that we set the ethtool params on
bond and VLAN devices for things to work well.

VLANs inherit the properties from the PIF they are based off. For bonds, the
properties of all slaves are the same as the master's.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Add documentation for PIF.properties

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Merge pull request #1689 from johnelse/gro-backport

API to set GRO (and potentially other "properties") on PIFs