diff options
Diffstat (limited to 'passt.h')
-rw-r--r-- | passt.h | 52 |
1 files changed, 4 insertions, 48 deletions
@@ -1,56 +1,12 @@ -#define CT_SIZE 4096 #define UNIX_SOCK_PATH "/tmp/passt.socket" /** - * struct ct4 - IPv4 connection tracking entry - * @p: IANA protocol number - * @sa: Source address (as seen from tap interface) - * @da: Destination address - * @sp: Source port, network order - * @dp: Destination port, network order - * @hd: Destination MAC address - * @hs: Source MAC address - * @fd: File descriptor for corresponding AF_INET socket - */ -struct ct4 { - uint8_t p; - uint32_t sa; - uint32_t da; - uint16_t sp; - uint16_t dp; - unsigned char hd[ETH_ALEN]; - unsigned char hs[ETH_ALEN]; - int fd; -}; - -/** - * struct ct6 - IPv6 connection tracking entry - * @p: IANA protocol number - * @sa: Source address (as seen from tap interface) - * @da: Destination address - * @sp: Source port, network order - * @dp: Destination port, network order - * @hd: Destination MAC address - * @hs: Source MAC address - * @fd: File descriptor for corresponding AF_INET6 socket - */ -struct ct6 { - uint8_t p; - struct in6_addr sa; - struct in6_addr da; - uint16_t sp; - uint16_t dp; - unsigned char hd[ETH_ALEN]; - unsigned char hs[ETH_ALEN]; - int fd; -}; - -/** * struct ctx - Execution context * @epollfd: file descriptor for epoll instance * @fd_unix: AF_UNIX socket for tap file descriptor - * @map4: Connection tracking table * @v4: Enable IPv4 transport + * @mac: Host MAC address + * @mac_guest: Guest MAC address * @addr4: IPv4 address for external, routable interface * @mask4: IPv4 netmask, network order * @gw4: Default IPv4 gateway, network order @@ -64,9 +20,8 @@ struct ct6 { struct ctx { int epollfd; int fd_unix; - struct ct4 map4[CT_SIZE]; - struct ct6 map6[CT_SIZE]; unsigned char mac[ETH_ALEN]; + unsigned char mac_guest[ETH_ALEN]; int v4; unsigned long addr4; @@ -76,6 +31,7 @@ struct ctx { int v6; struct in6_addr addr6; + struct in6_addr addr6_guest; struct in6_addr gw6; struct in6_addr dns6; |