View | Details | Raw Unified | Return to bug 165296 | Differences between
and this patch

Collapse All | Expand All

(-)./if_vlan_var.h (-9 / +6 lines)
Lines 52-78 Link Here
52
#define EVL_APPLY_VLID(m, vlid)						\
52
#define EVL_APPLY_VLID(m, vlid)						\
53
	do {								\
53
	do {								\
54
		if ((m)->m_flags & M_VLANTAG) {				\
54
		if ((m)->m_flags & M_VLANTAG) {				\
55
			(m)->m_pkthdr.ether_vtag &= EVL_VLID_MASK;	\
55
			(m)->m_pkthdr.ether_vtag &= ~EVL_VLID_MASK;	\
56
			(m)->m_pkthdr.ether_vtag |= (vlid);		\
57
		} else {						\
56
		} else {						\
58
			(m)->m_pkthdr.ether_vtag = (vlid);		\
57
			(m)->m_pkthdr.ether_vtag = 0;			\
59
			(m)->m_flags |= M_VLANTAG;			\
58
			(m)->m_flags |= M_VLANTAG;			\
60
		}							\
59
		}							\
60
		(m)->m_pkthdr.ether_vtag |= ((vlid) & EVL_VLID_MASK);	\
61
	} while (0)
61
	} while (0)
62
62
63
/* Set the priority ID in an mbuf packet header non-destructively. */
63
/* Set the priority ID in an mbuf packet header non-destructively. */
64
#define EVL_APPLY_PRI(m, pri)						\
64
#define EVL_APPLY_PRI(m, pri)						\
65
	do {								\
65
	do {								\
66
		if ((m)->m_flags & M_VLANTAG) {				\
66
		if ((m)->m_flags & M_VLANTAG) {				\
67
			uint16_t __vlantag = (m)->m_pkthdr.ether_vtag;	\
67
			(m)->m_pkthdr.ether_vtag &= ~EVL_PRI_MASK;	\
68
			(m)->m_pkthdr.ether_vtag |= EVL_MAKETAG(	\
69
			    EVL_VLANOFTAG(__vlantag), (pri),		\
70
			    EVL_CFIOFTAG(__vlantag));			\
71
		} else {						\
68
		} else {						\
72
			(m)->m_pkthdr.ether_vtag =			\
69
			(m)->m_pkthdr.ether_vtag = 0;			\
73
			    EVL_MAKETAG(0, (pri), 0);			\
74
			(m)->m_flags |= M_VLANTAG;			\
70
			(m)->m_flags |= M_VLANTAG;			\
75
		}							\
71
		}							\
72
		(m)->m_pkthdr.ether_vtag |= (((pri) & 7) << 13);	\
76
	} while (0)
73
	} while (0)
77
74
78
/* sysctl(3) tags, for compatibility purposes */
75
/* sysctl(3) tags, for compatibility purposes */

Return to bug 165296