Module Name:    src
Committed By:   christos
Date:           Thu Sep 28 16:26:14 UTC 2017

Modified Files:
        src/sys/net: if_ether.h

Log Message:
- add a constant for the vlan mask.
- enforce that we have a tag before we get it.


To generate a diff of this commit:
cvs rdiff -u -r1.67 -r1.68 src/sys/net/if_ether.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_ether.h
diff -u src/sys/net/if_ether.h:1.67 src/sys/net/if_ether.h:1.68
--- src/sys/net/if_ether.h:1.67	Tue Sep 26 03:42:06 2017
+++ src/sys/net/if_ether.h	Thu Sep 28 12:26:14 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ether.h,v 1.67 2017/09/26 07:42:06 knakahara Exp $	*/
+/*	$NetBSD: if_ether.h,v 1.68 2017/09/28 16:26:14 christos Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -60,6 +60,7 @@
  * Some Ethernet extensions.
  */
 #define	ETHER_VLAN_ENCAP_LEN 4	/* length of 802.1Q VLAN encapsulation */
+#define	ETHER_VLAN_MASK	0xFFF	/* bits in a vlan tag */
 #define	ETHER_PPPOE_ENCAP_LEN 8	/* length of PPPoE encapsulation */
 
 /*
@@ -299,7 +300,7 @@ static inline void
 vlan_set_tag(struct mbuf *m, u_int16_t vlanid)
 {
 
-	KASSERT((vlanid & ~0x0FFF) == 0);
+	KASSERT((vlanid & ~ETHER_VLAN_MASK) == 0);
 
 	m->m_pkthdr.ether_vtag = vlanid;
 	m->m_flags |= M_VLANTAG;
@@ -316,6 +317,7 @@ vlan_has_tag(struct mbuf *m)
 static inline uint16_t
 vlan_get_tag(struct mbuf *m)
 {
+	KASSERT(m->m_flags & M_VLANTAG);
 	return m->m_pkthdr.ether_vtag;
 }
 

Reply via email to