netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch] d80211: remove sub-interface mac address policy
@ 2006-09-14 14:33 David Kimdon
  2006-09-21 18:09 ` Jiri Benc
  0 siblings, 1 reply; 3+ messages in thread
From: David Kimdon @ 2006-09-14 14:33 UTC (permalink / raw)
  To: netdev; +Cc: John W. Linville, Jiri Benc, David Kimdon

[-- Attachment #1: remove_mac_addr_policy.patch --]
[-- Type: text/plain, Size: 2102 bytes --]

Wireless vlan interfaces need to have the same mac address as
other sub interfaces.  Rather than complicate the kernel here by
adding yet another case where uniqueness is not required, remove
the check on mac address uniqueness altogether.

We should not implement a mac address allocation policy here.  It
is difficult to get it right in all cases and does not belong in
the kernel.  It is better to leave this to be implemented as a
userspace policy.

Signed-off-by: David Kimdon <david.kimdon@devicescape.com>

Index: linux-2.6.16/net/d80211/ieee80211.c
===================================================================
--- linux-2.6.16.orig/net/d80211/ieee80211.c
+++ linux-2.6.16/net/d80211/ieee80211.c
@@ -2116,17 +2116,6 @@ static struct net_device_stats *ieee8021
 	return &(sdata->stats);
 }
 
-static inline int identical_mac_addr_allowed(int type1, int type2)
-{
-	return (type1 == IEEE80211_IF_TYPE_MNTR ||
-		type2 == IEEE80211_IF_TYPE_MNTR ||
-		(type1 == IEEE80211_IF_TYPE_AP &&
-		 type2 == IEEE80211_IF_TYPE_WDS) ||
-		(type1 == IEEE80211_IF_TYPE_WDS &&
-		 (type2 == IEEE80211_IF_TYPE_WDS ||
-		  type2 == IEEE80211_IF_TYPE_AP)));
-}
-
 static int ieee80211_master_open(struct net_device *dev)
 {
 	struct ieee80211_local *local = dev->ieee80211_ptr;
@@ -2202,22 +2191,12 @@ static void ieee80211_start_hard_monitor
 
 static int ieee80211_open(struct net_device *dev)
 {
-	struct ieee80211_sub_if_data *sdata, *nsdata;
+	struct ieee80211_sub_if_data *sdata;
 	struct ieee80211_local *local = dev->ieee80211_ptr;
 	struct ieee80211_if_init_conf conf;
 	int res;
 
 	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
-	list_for_each_entry(nsdata, &local->sub_if_list, list) {
-		struct net_device *ndev = nsdata->dev;
-
-		if (ndev != dev && ndev != local->mdev &&
-		    netif_running(ndev) &&
-		    memcmp(dev->dev_addr, ndev->dev_addr, ETH_ALEN) == 0 &&
-		    !identical_mac_addr_allowed(sdata->type, nsdata->type)) {
-			return -ENOTUNIQ;
-		}
-	}
 	if (sdata->type == IEEE80211_IF_TYPE_WDS &&
 	    memcmp(sdata->u.wds.remote_addr, "\0\0\0\0\0\0", ETH_ALEN) == 0)
 		return -ENOLINK;

--

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-09-21 21:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-14 14:33 [patch] d80211: remove sub-interface mac address policy David Kimdon
2006-09-21 18:09 ` Jiri Benc
2006-09-21 21:10   ` David Kimdon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).