|
|
Log in / Subscribe / Register

geneve: Allow binding UDP socket to a specific address.

From:  Kuniyuki Iwashima <kuniyu-AT-google.com>
To:  Andrew Lunn <andrew+netdev-AT-lunn.ch>, "David S . Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>
Subject:  [PATCH v1 net-next 0/5] geneve: Allow binding UDP socket to a specific address.
Date:  Sat, 23 May 2026 06:16:23 +0000
Message-ID:  <20260523061654.2767060-1-kuniyu@google.com>
Cc:  Simon Horman <horms-AT-kernel.org>, David Ahern <dsahern-AT-kernel.org>, Stephen Hemminger <stephen-AT-networkplumber.org>, Kuniyuki Iwashima <kuniyu-AT-google.com>, Kuniyuki Iwashima <kuni1840-AT-gmail.com>, netdev-AT-vger.kernel.org
Archive-link:  Article

By default, a GENEVE device bind()s its underlying UDP socket(s) to
the IPv4 or IPv6 wildcard address because there is no way to specify
a specific local IP address to bind() to.

This prevents deploying multiple GENEVE devices on a multi-homed host
where each device should be isolated and bound to a different local IP
address on the same UDP port.

This series introduces two options to specify local IPv4 or IPv6
addresses for a GENEVE device.

The corresponding iproute2 patch is here:
https://lore.kernel.org/netdev/20260523061102.2762452-1-k...


Kuniyuki Iwashima (5):
  geneve: Reuse ipv6_addr_type() result in geneve_nl2info().
  geneve: Pass struct geneve_dev to geneve_create_sock().
  geneve: Pass struct geneve_dev to geneve_find_sock().
  geneve: Add dualstack flag to struct geneve_config.
  geneve: Introduce IFLA_GENEVE_LOCAL and IFLA_GENEVE_LOCAL6.

 drivers/net/geneve.c         | 228 ++++++++++++++++++++++++++++-------
 include/uapi/linux/if_link.h |   2 +
 2 files changed, 186 insertions(+), 44 deletions(-)

-- 
2.54.0.746.g67dd491aae-goog




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds