PERFORCE change 148759 for review

Sam Leffler sam at FreeBSD.org
Fri Aug 29 00:33:45 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=148759

Change 148759 by sam at sam_ebb on 2008/08/29 00:33:37

	test remainder cases from 0-3 bytes

Affected files ...

.. //depot/projects/vap/tools/regression/net80211/tkip/test_tkip.c#6 edit

Differences ...

==== //depot/projects/vap/tools/regression/net80211/tkip/test_tkip.c#6 (text+ko) ====

@@ -182,15 +182,26 @@
 }
 
 static struct mbuf *
-formpacket(const struct ieee80211_cipher *cip, const void *plaintext, int len)
+formpacket(const struct ieee80211_cipher *cip, const void *plaintext,
+	int len, int remainder)
 {
-	struct mbuf *m;
+	struct mbuf *m, *n;
+	const uint8_t *p = plaintext;
+
+	printf("(packet %d+%d) ", len-remainder, remainder);
 
-	m = m_getcl(M_NOWAIT, MT_HEADER, M_PKTHDR);
+	m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
 	KASSERT(m != NULL, ("cannot allocate mbuf!"));
 
 	m->m_data += cip->ic_header;
-	m_append(m, len, plaintext);
+	m_append(m, len-remainder, p);
+
+	if (remainder) {
+		n = m_get(M_NOWAIT, MT_DATA);
+		KASSERT(n != NULL, ("cannot split mbuf chain!"));
+		m_append(m, remainder, p + (len-remainder));
+		m->m_next = n;
+	}
 
 	return m;
 }
@@ -223,7 +234,7 @@
 }
 
 static int
-runtest(struct ieee80211vap *vap, struct ciphertest *t)
+runtest(struct ieee80211vap *vap, struct ciphertest *t, int remainder)
 {
 	struct tkip_ctx *ctx;
 	struct ieee80211_key key;
@@ -259,7 +270,7 @@
 	 */
 	cip = key.wk_cipher;
 	m = formpacket(cip, t->plaintext,
-	    t->plaintext_len - IEEE80211_WEP_MICLEN);
+	    t->plaintext_len - IEEE80211_WEP_MICLEN, remainder);
 	hdrlen = ieee80211_anyhdrsize(t->plaintext);
 
 	/*
@@ -383,7 +394,7 @@
 	struct ieee80211_clone_params icp;
 	char ifname[IFNAMSIZ];
 	struct ieee80211vap *vap;
-	int pass = 0, total = 0, i, error;
+	int pass = 0, total = 0, i, error, remainder;
 	uint8_t bands;
 
 	ifp = if_alloc(IFT_IEEE80211);
@@ -431,7 +442,8 @@
 	for (i = 0; i < N(tkiptests); i++)
 		if (tests & (1<<i)) {
 			total++;
-			pass += runtest(vap, &tkiptests[i]);
+			for (remainder = 0; remainder < 4; remainder++)
+				pass += runtest(vap, &tkiptests[i], remainder);
 		}
 	printf("%u of %u 802.11i TKIP test vectors passed\n", pass, total);
 bad:


More information about the p4-projects mailing list