[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] tools/hotpug: only attempt to call 'ip route' if there is valid command
On Thu, Nov 07, 2019 at 04:58:14PM +0000, paul@xxxxxxx wrote: > From: Paul Durrant <pdurrant@xxxxxxxxxx> > > The vif-route script should only call 'ip route' when 'ipcmd' has been > set, otherwise it will fail due to an incorrect command string. > > This patch also adds routes for 'tap' (i.e. emulated) devices as well as > 'vif' (i.e. PV) devices by making use of the route metric. Emulated > devices are used by HVM guests until they are unplugged, at which point the > PV device becomes active. Thus 'tap' devices should get a higher priority > (i.e. lower numbered) metric than 'vif' devices. > > There is also one small whitespace fix. > > NOTE: Empirically offline/online commands relate to 'vif' devices, and > add/remove commands relate to 'tap' devices. However, this patch > treats them equally and uses ${type_if} to distinguish. > > Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx> > --- > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > Cc: Wei Liu <wei.liu2@xxxxxxxxxx> Looks like you need to update your address book. :-) > --- > tools/hotplug/Linux/vif-route | 22 +++++++++++++++++++--- > 1 file changed, 19 insertions(+), 3 deletions(-) > mode change 100644 => 100755 tools/hotplug/Linux/vif-route > > diff --git a/tools/hotplug/Linux/vif-route b/tools/hotplug/Linux/vif-route > old mode 100644 > new mode 100755 > index c149ffc..e71acae > --- a/tools/hotplug/Linux/vif-route > +++ b/tools/hotplug/Linux/vif-route > @@ -22,12 +22,16 @@ dir=$(dirname "$0") > main_ip=$(dom0_ip) > > case "${command}" in > + add) > + ;& > online) > ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up Hmm... I think we may need to replace ifconfig with ip because now distros (at least Debian and Arch) don't install ifconfig by default. This can be done with a separate patch though. > echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp > ipcmd='add' > cmdprefix='' > ;; > + remove) > + ;& > offline) > do_without_error ifdown ${dev} > ipcmd='del' > @@ -35,11 +39,23 @@ case "${command}" in > ;; > esac > The list of action here is exhaustive per the comment of this file, which means ipcmd will always be set. The test for ipcmd below becomes unnecessary. > -if [ "${ip}" ] ; then > +case "${type_if}" in > + tap) > + metric=1 > + ;; > + vif) > + metric=2 > + ;; > + *) > + fatal "Unrecognised interface type ${type_if}" > + ;; > +esac > + > +if [ "${ipcmd}" ] ; then > # If we've been given a list of IP addresses, then add routes from dom0 > to > # the guest using those addresses. I _think_ testing ${ip} here is still the correct action. The comment suggests there could be no ip given. If that assumption is not correct, please fix the comment as well. Wei. > for addr in ${ip} ; do > - ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} > + ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} > metric ${metric} > done > fi > > @@ -50,5 +66,5 @@ call_hooks vif post > log debug "Successful vif-route ${command} for ${dev}." > if [ "${command}" = "online" ] > then > - success > + success > fi > -- > 2.7.4 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/mailman/listinfo/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |