geneve: add rtnl changelink support
authorGirish Moodalbail <girish.moodalbail@oracle.com>
Fri, 21 Jul 2017 05:44:20 +0000 (22:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Jul 2017 20:51:05 +0000 (13:51 -0700)
commit5b861f6baa3a22a48d7a4ad0ce38a223d36c978a
tree5a254e6a0ef5d2efc8d2460fd20080e0af6320b1
parentf7ce91038d52780060ccb0d7ee6dd48967b3e132
geneve: add rtnl changelink support

This patch adds changelink rtnl operation support for geneve devices
and the code changes involve:

  - added geneve_quiesce() which quiesces the geneve device data path
    for both TX and RX. This lets us perform the changelink operation
    atomically w.r.t data path. Also added geneve_unquiesce() to
    reverse the operation of geneve_quiesce().

  - refactor geneve_newlink into geneve_nl2info to be used by both
    geneve_newlink and geneve_changelink

  - geneve_nl2info takes a changelink boolean argument to isolate
    changelink checks.

  - Allow changing only a few attributes (ttl, tos, and remote tunnel
    endpoint IP address (within the same address family)):
    - return -EOPNOTSUPP for attributes that cannot be changed for
      now. Incremental patches can make the non-supported one
      available in the future if needed.

Signed-off-by: Girish Moodalbail <girish.moodalbail@oracle.com>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/geneve.c