aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/tcpip.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2014-03-04 12:54:21 +0000
committerMichael Brown <mcb30@ipxe.org>2014-03-04 13:02:58 +0000
commitdb67de6f31a062dc1995d4561be83cd51609d6c4 (patch)
tree642ebb50e33c2a720d40769dd59010ce0d5b8e05 /src/include/ipxe/tcpip.h
parentff1e7fc72b138fe66de1452a311b7e871f33e201 (diff)
downloadipxe-db67de6f31a062dc1995d4561be83cd51609d6c4.tar.gz
[tcpip] Provide tcpip_netdev() to determine the transmitting network device
Provide the function tcpip_netdev() to allow external code to determine the transmitting network device for a given socket address. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/tcpip.h')
-rw-r--r--src/include/ipxe/tcpip.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/include/ipxe/tcpip.h b/src/include/ipxe/tcpip.h
index f5ef4f043..d28689a10 100644
--- a/src/include/ipxe/tcpip.h
+++ b/src/include/ipxe/tcpip.h
@@ -116,6 +116,13 @@ struct tcpip_net_protocol {
struct sockaddr_tcpip *st_dest,
struct net_device *netdev,
uint16_t *trans_csum );
+ /**
+ * Determine transmitting network device
+ *
+ * @v st_dest Destination address
+ * @ret netdev Network device, or NULL
+ */
+ struct net_device * ( * netdev ) ( struct sockaddr_tcpip *dest );
};
/** TCP/IP transport-layer protocol table */
@@ -140,6 +147,7 @@ extern int tcpip_tx ( struct io_buffer *iobuf, struct tcpip_protocol *tcpip,
struct sockaddr_tcpip *st_dest,
struct net_device *netdev,
uint16_t *trans_csum );
+extern struct net_device * tcpip_netdev ( struct sockaddr_tcpip *st_dest );
extern uint16_t generic_tcpip_continue_chksum ( uint16_t partial,
const void *data, size_t len );
extern uint16_t tcpip_chksum ( const void *data, size_t len );