[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
Cc xen-devel Look forward to v3. On Fri, Nov 08, 2019 at 09:17:37AM +0000, Paul Durrant wrote: > On Thu, 7 Nov 2019 at 18:52, Wei Liu <wl@xxxxxxx> wrote: > > > > 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. :-) > > > > Yeah, that is indeed weird... I can only think I ran get-maintainer > with this rebased on an old branch. > > > > --- > > > 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. > > I think that would be best. > > > > > > 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. > > True. > > > > > > -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. > > No, there's no need because of the "for addr in ${ip}" loop. If ${ip} > is empty then it will do nothing (which is what made me believe the > the ${ip} in the if statement was simply a typo). > I'll just remove the if altogether. > > Paul > > > 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 |