Lines Matching refs:ershdr
119 static inline void set_session_id(struct erspan_base_hdr *ershdr, u16 id)
121 ershdr->session_id = id & 0xff;
122 ershdr->session_id_upper = (id >> 8) & 0x3;
125 static inline u16 get_session_id(const struct erspan_base_hdr *ershdr)
127 return (ershdr->session_id_upper << 8) + ershdr->session_id;
130 static inline void set_vlan(struct erspan_base_hdr *ershdr, u16 vlan)
132 ershdr->vlan = vlan & 0xff;
133 ershdr->vlan_upper = (vlan >> 8) & 0xf;
136 static inline u16 get_vlan(const struct erspan_base_hdr *ershdr)
138 return (ershdr->vlan_upper << 8) + ershdr->vlan;
176 struct erspan_base_hdr *ershdr;
200 skb_push(skb, sizeof(*ershdr) + ERSPAN_V1_MDSIZE);
201 ershdr = (struct erspan_base_hdr *)skb->data;
202 memset(ershdr, 0, sizeof(*ershdr) + ERSPAN_V1_MDSIZE);
205 ershdr->ver = ERSPAN_VERSION;
206 ershdr->cos = tos_to_cos(tos);
207 ershdr->en = enc_type;
208 ershdr->t = truncate;
209 set_vlan(ershdr, vlan_tci);
210 set_session_id(ershdr, id);
213 idx = (__be32 *)(ershdr + 1);
269 struct erspan_base_hdr *ershdr;
294 skb_push(skb, sizeof(*ershdr) + ERSPAN_V2_MDSIZE);
295 ershdr = (struct erspan_base_hdr *)skb->data;
296 memset(ershdr, 0, sizeof(*ershdr) + ERSPAN_V2_MDSIZE);
299 ershdr->ver = ERSPAN_VERSION2;
300 ershdr->cos = tos_to_cos(tos);
301 ershdr->en = bso;
302 ershdr->t = truncate;
303 set_vlan(ershdr, vlan_tci);
304 set_session_id(ershdr, id);
307 md2 = (struct erspan_md2 *)(ershdr + 1);