From f008b77ba2b7d921a9d765c9931694e9c7d13ee9 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 10 Jan 2007 02:25:11 +0000 Subject: Allow an explicit network device to be specified for IP-layer transmissions. --- src/include/gpxe/tcpip.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/include/gpxe') 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 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 ); -- cgit v1.2.3-55-g7522