diff options
author | Michael Brown | 2007-01-10 03:25:11 +0100 |
---|---|---|
committer | Michael Brown | 2007-01-10 03:25:11 +0100 |
commit | f008b77ba2b7d921a9d765c9931694e9c7d13ee9 (patch) | |
tree | 1464a93bb9b01a2ae75ed87aa5b5d1e52b91392d /src/include/gpxe | |
parent | Add interface management commands (diff) | |
download | ipxe-f008b77ba2b7d921a9d765c9931694e9c7d13ee9.tar.gz ipxe-f008b77ba2b7d921a9d765c9931694e9c7d13ee9.tar.xz ipxe-f008b77ba2b7d921a9d765c9931694e9c7d13ee9.zip |
Allow an explicit network device to be specified for IP-layer
transmissions.
Diffstat (limited to 'src/include/gpxe')
-rw-r--r-- | src/include/gpxe/tcpip.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/include/gpxe/tcpip.h b/src/include/gpxe/tcpip.h index 23c6ce7f..1fdb8b71 100644 --- a/src/include/gpxe/tcpip.h +++ b/src/include/gpxe/tcpip.h @@ -13,6 +13,7 @@ #include <gpxe/tables.h> struct pk_buff; +struct net_device; /** Empty checksum value * @@ -84,6 +85,7 @@ struct tcpip_net_protocol { * @v pkb Packet buffer * @v tcpip_protocol Transport-layer protocol * @v st_dest Destination address + * @v netdev Network device (or NULL to route automatically) * @v trans_csum Transport-layer checksum to complete, or NULL * @ret rc Return status code * @@ -91,7 +93,9 @@ struct tcpip_net_protocol { */ int ( * tx ) ( struct pk_buff *pkb, struct tcpip_protocol *tcpip_protocol, - struct sockaddr_tcpip *st_dest, uint16_t *trans_csum ); + struct sockaddr_tcpip *st_dest, + struct net_device *netdev, + uint16_t *trans_csum ); }; /** Declare a TCP/IP transport-layer protocol */ @@ -104,7 +108,9 @@ extern int tcpip_rx ( struct pk_buff *pkb, uint8_t tcpip_proto, struct sockaddr_tcpip *st_src, struct sockaddr_tcpip *st_dest, uint16_t pshdr_csum ); extern int tcpip_tx ( struct pk_buff *pkb, struct tcpip_protocol *tcpip, - struct sockaddr_tcpip *st_dest, uint16_t *trans_csum ); + struct sockaddr_tcpip *st_dest, + struct net_device *netdev, + uint16_t *trans_csum ); extern uint16_t tcpip_continue_chksum ( uint16_t partial, const void *data, size_t len ); extern uint16_t tcpip_chksum ( const void *data, size_t len ); |