Thread (76 messages) 76 messages, 8 authors, 2019-09-13

Re: [patch net-next rfc 3/7] net: rtnetlink: add commands to add and delete alternative ifnames

From: Roopa Prabhu <hidden>
Date: 2019-08-29 04:36:57

On Wed, Aug 28, 2019 at 12:07 AM Jiri Pirko [off-list ref] wrote:
Tue, Aug 27, 2019 at 05:14:49PM CEST, roopa@cumulusnetworks.com wrote:
quoted
On Tue, Aug 27, 2019 at 2:35 AM Jiri Pirko [off-list ref] wrote:
quoted
Tue, Aug 27, 2019 at 10:22:42AM CEST, davem@davemloft.net wrote:
quoted
From: Jiri Pirko <jiri@resnulli.us>
Date: Tue, 27 Aug 2019 09:08:08 +0200
quoted
Okay, so if I understand correctly, on top of separate commands for
add/del of alternative names, you suggest also get/dump to be separate
command and don't fill this up in existing newling/getlink command.
I'm not sure what to do yet.

David has a point, because the only way these ifnames are useful is
as ways to specify and choose net devices.  So based upon that I'm
slightly learning towards not using separate commands.
Well yeah, one can use it to handle existing commands instead of
IFLA_NAME.

But why does it rule out separate commands? I think it is cleaner than
to put everything in poor setlink messages :/ The fact that we would
need to add "OP" to the setlink message just feels of. Other similar
needs may show up in the future and we may endup in ridiculous messages
like:

SETLINK
  IFLA_NAME eth0
  IFLA_ATLNAME_LIST (nest)
      IFLA_ALTNAME_OP add
      IFLA_ALTNAME somereallylongname
      IFLA_ALTNAME_OP del
      IFLA_ALTNAME somereallyreallylongname
      IFLA_ALTNAME_OP add
      IFLA_ALTNAME someotherreallylongname
  IFLA_SOMETHING_ELSE_LIST (nest)
      IFLA_SOMETHING_ELSE_OP add
      ...
      IFLA_SOMETHING_ELSE_OP del
      ...
      IFLA_SOMETHING_ELSE_OP add
      ...

I don't know what to think about it. Rollbacks are going to be pure hell :/
I don't see a huge problem with the above. We need a way to solve this
anyways for other list types in the future correct ?.
The approach taken by this series will not scale if we have to add a
new msg type and header for every such list attribute in the future.
Do you have some other examples in mind? So far, this was not needed.
yes, so far it was not needed.
No other future possible examples in mind...but I wont be surprised if
we see such cases in the future.
Having a consistent API to extend a list attribute will help.
quoted
A good parallel here is bridge vlan which uses RTM_SETLINK and
RTM_DELLINK for vlan add and deletes. But it does have an advantage of
a separate
msg space under AF_BRIDGE which makes it cleaner. Maybe something
closer to that  can be made to work (possibly with a msg flag) ?.
1) Not sure if AF_BRIDGE is the right example how to do things
2) See br_vlan_info(). It is not an OP-PER-VLAN. You either add or
delete all passed info, depending on the cmd (RTM_SETLINK/RTM_DETLINK).
yes,  correct. I mentioned that because I was wondering if we can
think along the same lines for this API.
eg
(a) RTM_NEWLINK always replaces the list attribute
(b) RTM_SETLINK with NLM_F_APPEND always appends to the list attribute
(c) RTM_DELLINK with NLM_F_APPEND updates the list attribute

(It could be NLM_F_UPDATE if NLM_F_APPEND sounds weird in the del
case. I have not looked at the full dellink path if it will work
neatly..its been a busy day )

quoted
Would be good to have a consistent way to update list attributes for
future needs too.
Okay. Do you suggest to have new set of commands to handle
adding/deleting lists of items? altNames now, others (other nests) later?

Something like:

CMD SETLISTS
     IFLA_NAME eth0
     IFLA_ATLNAME_LIST (nest)
       IFLA_ALTNAME somereallylongname
       IFLA_ALTNAME somereallyreallylongname
       IFLA_ALTNAME someotherreallylongname
     IFLA_SOMETHING_ELSE_LIST (nest)
       IFLA_SOMETHING_ELSE
       IFLA_SOMETHING_ELSE
       IFLA_SOMETHING_ELSE


CMD DELLISTS
     IFLA_NAME eth0
     IFLA_ATLNAME_LIST (nest)
       IFLA_ALTNAME somereallylongname
       IFLA_ALTNAME somereallyreallylongname
       IFLA_ALTNAME someotherreallylongname
     IFLA_SOMETHING_ELSE_LIST (nest)
       IFLA_SOMETHING_ELSE
       IFLA_SOMETHING_ELSE
       IFLA_SOMETHING_ELSE

How does this sound?
This seems fine but it does introduce a new type. If we can avoid a
new msg type with a flag that would be nice (like the NLM_F_APPEND eg
above).
The reason for that is to see if we can use it else where too (eg some
random future list attribute in the route subsystem. If a flag works
then we don't have to add a RTM_NEWROUTE variant of CMD SETLISTS and
CMD DELLISTS)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help