david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[802.11] Support multicast hashing

802.11 multicast hashing is the same as standard Ethernet hashing, so
just expose and use eth_mc_hash().

Signed-off-by: Joshua Oreman <oremanj@rwcr.net>
This commit is contained in:
Michael Brown 2009-08-12 00:40:26 +01:00
parent 2310c30d1c
commit a7290a970c
3 changed files with 4 additions and 22 deletions

View File

@ -13,6 +13,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
extern void eth_init_addr ( const void *hw_addr, void *ll_addr );
extern const char * eth_ntoa ( const void *ll_addr );
extern int eth_mc_hash ( unsigned int af, const void *net_addr,
void *ll_addr );
extern struct net_device * alloc_etherdev ( size_t priv_size );
#endif /* _GPXE_ETHERNET_H */

View File

@ -160,8 +160,6 @@ static int net80211_ll_push ( struct net_device *netdev,
static int net80211_ll_pull ( struct net_device *netdev,
struct io_buffer *iobuf, const void **ll_dest,
const void **ll_source, uint16_t * net_proto );
static int net80211_ll_mc_hash ( unsigned int af, const void *net_addr,
void *ll_addr );
/** @} */
/**
@ -580,23 +578,6 @@ static int net80211_ll_pull ( struct net_device *netdev __unused,
return 0;
}
/**
* Hash 802.11 multicast address
*
* @v af Address family
* @v net_addr Network-layer address
* @ret ll_addr Filled link-layer address
* @ret rc Return status code
*
* Currently unimplemented.
*/
static int net80211_ll_mc_hash ( unsigned int af __unused,
const void *net_addr __unused,
void *ll_addr __unused )
{
return -ENOTSUP;
}
/** 802.11 link-layer protocol */
static struct ll_protocol net80211_ll_protocol __ll_protocol = {
.name = "802.11",
@ -604,7 +585,7 @@ static struct ll_protocol net80211_ll_protocol __ll_protocol = {
.pull = net80211_ll_pull,
.init_addr = eth_init_addr,
.ntoa = eth_ntoa,
.mc_hash = net80211_ll_mc_hash,
.mc_hash = eth_mc_hash,
.ll_proto = htons ( ARPHRD_ETHER ), /* "encapsulated Ethernet" */
.hw_addr_len = ETH_ALEN,
.ll_addr_len = ETH_ALEN,

View File

@ -130,8 +130,7 @@ const char * eth_ntoa ( const void *ll_addr ) {
* @v ll_addr Link-layer address to fill in
* @ret rc Return status code
*/
static int eth_mc_hash ( unsigned int af, const void *net_addr,
void *ll_addr ) {
int eth_mc_hash ( unsigned int af, const void *net_addr, void *ll_addr ) {
const uint8_t *net_addr_bytes = net_addr;
uint8_t *ll_addr_bytes = ll_addr;