On Thu, 27 Apr 2017 14:35:01 +0800
张胜举 <zhangshen...@cmss.chinamobile.com> wrote:

> > -----Original Message-----
> > From: Stephen Hemminger [mailto:step...@networkplumber.org]
> > Sent: Wednesday, April 26, 2017 11:08 PM
> > To: Zhang Shengju <zhangshen...@cmss.chinamobile.com>
> > Cc: netdev@vger.kernel.org
> > Subject: Re: [iproute2] iplink: add support for IFLA_CARRIER attribute
> > 
> > On Wed, 26 Apr 2017 15:08:39 +0800
> > Zhang Shengju <zhangshen...@cmss.chinamobile.com> wrote:
> >   
> > > Add support to set IFLA_CARRIER attribute.
> > >
> > > Signed-off-by: Zhang Shengju <zhangshen...@cmss.chinamobile.com>
> > > ---
> > >  ip/iplink.c | 12 ++++++++++++
> > >  1 file changed, 12 insertions(+)
> > >
> > > diff --git a/ip/iplink.c b/ip/iplink.c index 866ad72..263bfdd 100644
> > > --- a/ip/iplink.c
> > > +++ b/ip/iplink.c
> > > @@ -72,6 +72,7 @@ void iplink_usage(void)
> > >           "                         [ allmulticast { on | off } ]\n"
> > >           "                         [ promisc { on | off } ]\n"
> > >           "                         [ trailers { on | off } ]\n"
> > > +         "                         [ carrier { on | off } ]\n"
> > >           "                         [ txqueuelen PACKETS ]\n"
> > >           "                         [ name NEWNAME ]\n"
> > >           "                         [ address LLADDR ]\n"
> > > @@ -673,6 +674,17 @@ int iplink_parse(int argc, char **argv, struct  
> > iplink_req *req,  
> > >                           req->i.ifi_flags |= IFF_NOARP;
> > >                   else
> > >                           return on_off("arp", *argv);
> > > +         } else if (strcmp(*argv, "carrier") == 0) {
> > > +                 int carrier;
> > > +                 NEXT_ARG();
> > > +                 if (strcmp(*argv, "on") == 0)
> > > +                         carrier = 1;
> > > +                 else if (strcmp(*argv, "off") == 0)
> > > +                         carrier = 0;
> > > +                 else
> > > +                         return on_off("carrier", *argv);
> > > +
> > > +                 addattr8(&req->n, sizeof(*req), IFLA_CARRIER,  
> > carrier);  
> > >           } else if (strcmp(*argv, "vf") == 0) {
> > >                   struct rtattr *vflist;
> > >  
> > 
> > The general policy of ip link command is all options should be invertable.  
> Yes, so I add 'on' and 'off' subcommand to make sure that it can be
> invertable.
> 
> > There are some VPN's that use this to save and restore state. So if you  
> add
> > an option to set something there should be similar output under the  
> detailed
> > show command.  
> Currently, "show command" already can display 'carrier' status. Such as:
>  dummy0: <NO-CARRIER...>
> 

Applied.

Reply via email to