Skip to content

Commit

Permalink
Fixed is_network_packet() to include checking for broadcast packets.
Browse files Browse the repository at this point in the history
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
  • Loading branch information
Peter Jones authored and James Ketrenos committed Nov 7, 2005
1 parent 24a47db commit 90700fd
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions drivers/net/wireless/ipw2200.c
Original file line number Diff line number Diff line change
Expand Up @@ -8096,21 +8096,23 @@ static inline int is_network_packet(struct ipw_priv *priv,
if (!memcmp(header->addr2, priv->net_dev->dev_addr, ETH_ALEN))
return 0;

/* multicast packets to our IBSS go through */
if (is_multicast_ether_addr(header->addr1))
/* {broad,multi}cast packets to our BSSID go through */
if (is_multicast_ether_addr(header->addr1) ||
is_broadcast_ether_addr(header->addr1))
return !memcmp(header->addr3, priv->bssid, ETH_ALEN);

/* packets to our adapter go through */
return !memcmp(header->addr1, priv->net_dev->dev_addr,
ETH_ALEN);

case IW_MODE_INFRA: /* Header: Dest. | AP{BSSID} | Source */
case IW_MODE_INFRA: /* Header: Dest. | BSSID | Source */
/* packets from our adapter are dropped (echo) */
if (!memcmp(header->addr3, priv->net_dev->dev_addr, ETH_ALEN))
return 0;

/* {broad,multi}cast packets to our IBSS go through */
if (is_multicast_ether_addr(header->addr1))
/* {broad,multi}cast packets to our BSS go through */
if (is_multicast_ether_addr(header->addr1) ||
is_broadcast_ether_addr(header->addr1))
return !memcmp(header->addr2, priv->bssid, ETH_ALEN);

/* packets to our adapter go through */
Expand Down

0 comments on commit 90700fd

Please sign in to comment.