Lines Matching refs:ershdr
122 static inline void set_session_id(struct erspan_base_hdr *ershdr, u16 id)
124 ershdr->session_id = id & 0xff;
125 ershdr->session_id_upper = (id >> 8) & 0x3;
128 static inline u16 get_session_id(const struct erspan_base_hdr *ershdr)
130 return (ershdr->session_id_upper << 8) + ershdr->session_id;
133 static inline void set_vlan(struct erspan_base_hdr *ershdr, u16 vlan)
135 ershdr->vlan = vlan & 0xff;
136 ershdr->vlan_upper = (vlan >> 8) & 0xf;
139 static inline u16 get_vlan(const struct erspan_base_hdr *ershdr)
141 return (ershdr->vlan_upper << 8) + ershdr->vlan;
179 struct erspan_base_hdr *ershdr;
203 skb_push(skb, sizeof(*ershdr) + ERSPAN_V1_MDSIZE);
204 ershdr = (struct erspan_base_hdr *)skb->data;
205 memset(ershdr, 0, sizeof(*ershdr) + ERSPAN_V1_MDSIZE);
208 ershdr->ver = ERSPAN_VERSION;
209 ershdr->cos = tos_to_cos(tos);
210 ershdr->en = enc_type;
211 ershdr->t = truncate;
212 set_vlan(ershdr, vlan_tci);
213 set_session_id(ershdr, id);
216 idx = (__be32 *)(ershdr + 1);
272 struct erspan_base_hdr *ershdr;
297 skb_push(skb, sizeof(*ershdr) + ERSPAN_V2_MDSIZE);
298 ershdr = (struct erspan_base_hdr *)skb->data;
299 memset(ershdr, 0, sizeof(*ershdr) + ERSPAN_V2_MDSIZE);
302 ershdr->ver = ERSPAN_VERSION2;
303 ershdr->cos = tos_to_cos(tos);
304 ershdr->en = bso;
305 ershdr->t = truncate;
306 set_vlan(ershdr, vlan_tci);
307 set_session_id(ershdr, id);
310 md2 = (struct erspan_md2 *)(ershdr + 1);