mirror of
https://passt.top/passt
synced 2025-06-15 03:45:34 +02:00
Separate IPv4 and IPv6 configuration
After recent changes, conf_ip() now has essentially entirely disjoint paths for IPv4 and IPv6 configuration. So, it's cleaner to split them out into different functions conf_ip4() and conf_ip6(). Splitting these out also lets us make the interface a bit nicer, having them return success or failure directly, rather than manipulating c->v4 and c->v6 to indicate success/failure of the two versions. Since these functions may also initialize the interface index for each protocol, it turns out we can then drop c->v4 and c->v6 entirely, replacing tests on those with tests on whether c->ifi4 or c->ifi6 is non-zero (since a 0 interface index is never valid). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Whitespace fixes] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
c984ee5afd
commit
5e12d23acb
7 changed files with 108 additions and 100 deletions
8
passt.h
8
passt.h
|
@ -121,8 +121,7 @@ enum passt_modes {
|
|||
* @fd_tap: File descriptor for AF_UNIX socket or tuntap device
|
||||
* @mac: Host MAC address
|
||||
* @mac_guest: MAC address of guest or namespace, seen or configured
|
||||
* @v4: Enable IPv4 transport
|
||||
* @ifi4: Index of routable interface for IPv4
|
||||
* @ifi4: Index of routable interface for IPv4, 0 if IPv4 disabled
|
||||
* @addr4: IPv4 address for external, routable interface
|
||||
* @addr4_seen: Latest IPv4 address seen as source from tap
|
||||
* @mask4: IPv4 netmask, network order
|
||||
|
@ -130,8 +129,7 @@ enum passt_modes {
|
|||
* @dns4: IPv4 DNS addresses, zero-terminated, network order
|
||||
* @dns4_fwd: Address forwarded (UDP) to first IPv4 DNS, network order
|
||||
* @dns_search: DNS search list
|
||||
* @v6: Enable IPv6 transport
|
||||
* @ifi6: Index of routable interface for IPv6
|
||||
* @ifi6: Index of routable interface for IPv6, 0 if IPv6 disabled
|
||||
* @addr6: IPv6 address for external, routable interface
|
||||
* @addr6_ll: Link-local IPv6 address on external, routable interface
|
||||
* @addr6_seen: Latest IPv6 global/site address seen as source from tap
|
||||
|
@ -193,7 +191,6 @@ struct ctx {
|
|||
unsigned char mac[ETH_ALEN];
|
||||
unsigned char mac_guest[ETH_ALEN];
|
||||
|
||||
int v4;
|
||||
unsigned int ifi4;
|
||||
uint32_t addr4;
|
||||
uint32_t addr4_seen;
|
||||
|
@ -204,7 +201,6 @@ struct ctx {
|
|||
|
||||
struct fqdn dns_search[MAXDNSRCH];
|
||||
|
||||
int v6;
|
||||
unsigned int ifi6;
|
||||
struct in6_addr addr6;
|
||||
struct in6_addr addr6_ll;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue