diff options
author | Michael Brown | 2010-10-07 14:17:52 +0200 |
---|---|---|
committer | Michael Brown | 2010-10-07 20:16:34 +0200 |
commit | 1775a6f25e5d045be3b1a29a1c7c7852a16863c3 (patch) | |
tree | 04fff86d034908ef6ce79bd575d8b6a367684d7e /src/net/fcels.c | |
parent | [netdevice] Pass both link-layer addresses in net_tx() and net_rx() (diff) | |
download | ipxe-1775a6f25e5d045be3b1a29a1c7c7852a16863c3.tar.gz ipxe-1775a6f25e5d045be3b1a29a1c7c7852a16863c3.tar.xz ipxe-1775a6f25e5d045be3b1a29a1c7c7852a16863c3.zip |
[fc] Include port IDs in metadata for received Fibre Channel frames
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/fcels.c')
-rw-r--r-- | src/net/fcels.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/net/fcels.c b/src/net/fcels.c index fe2f5c22..67ee5ef5 100644 --- a/src/net/fcels.c +++ b/src/net/fcels.c @@ -119,25 +119,18 @@ static struct fc_els_handler * fc_els_detect ( struct fc_els *els, * @ret rc Return status code */ int fc_els_tx ( struct fc_els *els, const void *data, size_t len ) { - union { - struct sockaddr sa; - struct sockaddr_fc fc; - } dest; struct xfer_metadata meta; + struct sockaddr_fc dest; int rc; DBGC2 ( els, FCELS_FMT " transmitting:\n", FCELS_ARGS ( els ) ); DBGC2_HDA ( els, 0, data, len ); /* Construct metadata */ - memset ( &dest, 0, sizeof ( dest ) ); - dest.fc.sfc_family = AF_FC; - memcpy ( &dest.fc.sfc_port_id, &els->peer_port_id, - sizeof ( dest.fc.sfc_port_id ) ); memset ( &meta, 0, sizeof ( meta ) ); meta.flags = ( fc_els_is_request ( els ) ? XFER_FL_OVER : ( XFER_FL_RESPONSE | XFER_FL_OUT ) ); - meta.dest = &dest.sa; + meta.dest = fc_fill_sockaddr ( &dest, &els->peer_port_id ); /* Transmit frame */ if ( ( rc = xfer_deliver_raw_meta ( &els->xchg, data, len, |