[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.