Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 May 2009 18:20:34 +0000 (UTC)
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r191997 - projects/mesh11s/sys/net80211
Message-ID:  <200905111820.n4BIKYv6098596@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rpaulo
Date: Mon May 11 18:20:34 2009
New Revision: 191997
URL: http://svn.freebsd.org/changeset/base/191997

Log:
  Checkpoint input data processing.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/mesh11s/sys/net80211/ieee80211_mesh.c
  projects/mesh11s/sys/net80211/ieee80211_mesh.h

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c	Mon May 11 17:29:11 2009	(r191996)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c	Mon May 11 18:20:34 2009	(r191997)
@@ -264,7 +264,10 @@ mesh_input(struct ieee80211_node *ni, st
 
 	switch (type) {
 	case IEEE80211_FC0_TYPE_DATA:
-		hdrspace = ieee80211_hdrspace(ic, wh);
+		IEEE80211_NOTE(vap, IEEE80211_MSG_MESH, ni,
+		    "%s", "received data frame");
+		hdrspace = ieee80211_hdrspace(ic, wh)
+		    + sizeof(struct ieee80211_meshcontrol);
 		if (m->m_len < hdrspace &&
 		    (m = m_pullup(m, hdrspace)) == NULL) {
 			IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
@@ -291,7 +294,6 @@ mesh_input(struct ieee80211_node *ni, st
 		/*
 		 * Next up, any fragmentation.
 		 */
-#if 0
 		if (!IEEE80211_IS_MULTICAST(wh->i_addr3)) {
 			m = ieee80211_defrag(ni, m, hdrspace);
 			if (m == NULL) {
@@ -299,7 +301,6 @@ mesh_input(struct ieee80211_node *ni, st
 				goto out;
 			}
 		}
-#endif
 		wh = NULL;		/* no longer valid, catch any uses */
 		if (bpf_peers_present(vap->iv_rawbpf))
 			bpf_mtap(vap->iv_rawbpf, m);
@@ -320,6 +321,7 @@ mesh_input(struct ieee80211_node *ni, st
 			IEEE80211_NODE_STAT(ni, rx_decap);
 			goto err;
 		}
+		
 		/* XXX SuperG/HT */
 		ieee80211_deliver_data(vap, ni, m);
 		return type;

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h	Mon May 11 17:29:11 2009	(r191996)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h	Mon May 11 18:20:34 2009	(r191997)
@@ -264,6 +264,13 @@ struct ieee80211_meshpuc_ie {
 #define	IEEE80211_ACTION_MESHPEERING_CONFIRM	1
 #define	IEEE80211_ACTION_MESHPEERING_CLOSE	2
 
+struct ieee80211_meshcontrol {
+	uint8_t		mc_flags;
+	uint8_t		mc_ttl;
+	uint32_t	mc_seq;
+	/* more mesh addresses follow */
+} __packed;
+
 void		ieee80211_mesh_attach(struct ieee80211com *);
 void		ieee80211_mesh_detach(struct ieee80211com *);
 void		ieee80211_parse_meshid(struct ieee80211_node *, const uint8_t *);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905111820.n4BIKYv6098596>