[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 6/8] tools/hotplug/Linux: modify set_mtu() to optionally use a configured value...
From: Paul Durrant <pdurrant@xxxxxxxxxx> ...and also inform the frontend. The set_mtu() function in xen-network-common.sh currently sets the backend vif MTU to match that of the bridge. A prior patch added code into libxl such that a tools-configured 'mtu' value may be present in the xenstore backend area. If the node is present in xenstore then it should be authoritative. Hence set_mtu() is modified to only read the MTU of the bridge if it is not present. The function is also modified to write whatever value it applies to the backend vif into the xenstore frontend area where is may then be used to configure the frontend network stack. NOTE: There is also a small modification replacing '$mtu' with '${mtu}' for style consistency. Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx> --- Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Wei Liu <wl@xxxxxxx> v3: - Re-factored from "tools/hotplug: modify set_mtu() to inform the frontend via xenstore" in v2 --- tools/hotplug/Linux/vif-bridge | 2 +- tools/hotplug/Linux/xen-network-common.sh | 28 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge index e1d7c49788..b99cc82a21 100644 --- a/tools/hotplug/Linux/vif-bridge +++ b/tools/hotplug/Linux/vif-bridge @@ -81,7 +81,7 @@ case "$command" in ;& online) setup_virtual_bridge_port "$dev" - set_mtu "$bridge" "$dev" + set_mtu "$bridge" "$dev" "$type_if" add_to_bridge "$bridge" "$dev" ;; remove) diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh index 6a0904361f..82ee70aab4 100644 --- a/tools/hotplug/Linux/xen-network-common.sh +++ b/tools/hotplug/Linux/xen-network-common.sh @@ -164,9 +164,33 @@ remove_from_bridge () { set_mtu () { local bridge=$1 local dev=$2 - mtu="`ip link show dev ${bridge}| awk '/mtu/ { print $5 }'`" + local type_if=$3 + + XENBUS_PATH="${XENBUS_PATH:?}" + + local mtu=$(xenstore_read_default "$XENBUS_PATH/mtu" "") + if [ -z "$mtu" ] + then + mtu="`ip link show dev ${bridge}| awk '/mtu/ { print $5 }'`" + if [ -n "$mtu" ] + then + log debug "$bridge MTU is $mtu" + fi + fi if [ -n "$mtu" ] && [ "$mtu" -gt 0 ] then - ip link set dev ${dev} mtu $mtu || : + log debug "setting $dev MTU to $mtu" + ip link set dev ${dev} mtu ${mtu} || : + + if [ ${type_if} = vif ] + then + local dev_=${dev#vif} + local domid=${dev_%.*} + local devid=${dev_#*.} + + local FRONTEND_PATH="/local/domain/$domid/device/vif/$devid" + + xenstore_write "$FRONTEND_PATH/mtu" ${mtu} + fi fi } -- 2.20.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |