diff options
author | Michael Brown | 2007-09-13 15:43:12 +0200 |
---|---|---|
committer | Michael Brown | 2007-09-13 15:43:12 +0200 |
commit | 30a19c3f1c51ff404d8de3196c4355fba3083c8e (patch) | |
tree | 013ebc0cb2c2249f9e0e0f6ea9740f97a4f89705 /src/net/infiniband.c | |
parent | Dump received packet, including GRH. (diff) | |
download | ipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.tar.gz ipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.tar.xz ipxe-30a19c3f1c51ff404d8de3196c4355fba3083c8e.zip |
Can now both send and receive packets. LL header format not yet
fixed; still using a quick hack-up just to be able to pass through
data.
Diffstat (limited to 'src/net/infiniband.c')
-rw-r--r-- | src/net/infiniband.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/net/infiniband.c b/src/net/infiniband.c index bcfac292..c7fabd0e 100644 --- a/src/net/infiniband.c +++ b/src/net/infiniband.c @@ -70,6 +70,17 @@ static int ib_tx ( struct io_buffer *iobuf, struct net_device *netdev, * network-layer protocol. */ static int ib_rx ( struct io_buffer *iobuf, struct net_device *netdev ) { + + struct { + uint16_t proto; + uint16_t reserved; + } * header = iobuf->data; + + iob_pull ( iobuf, sizeof ( *header ) ); + return net_rx ( iobuf, netdev, header->proto, NULL ); + + + struct ibhdr *ibhdr = iobuf->data; /* Sanity check */ |