grehdr
gre_update_hdr(struct gre_softc *sc, struct grehdr *gh)
struct grehdr *gh;
hlen = off + sizeof(struct grehdr) + 4 * sizeof(uint32_t);
gh = (struct grehdr *)mtodo(m, off);
gre_setseqn(struct grehdr *gh, uint32_t seq)
struct grehdr *gh;
gh = (struct grehdr *)mtodo(m, len);
void gre_update_hdr(struct gre_softc *, struct grehdr *);
struct grehdr gi_gre;
struct grehdr gi_gre;
struct grehdr gi6_gre;
struct grehdr gi6_gre;
struct grehdr *gh;
typedef struct grehdr GreHdr;
struct grehdr *gh;
PULLUP_TO(hlen, ulp, struct grehdr);
decode_gre_hash(const uint8_t *grehdr, uint8_t hash_split, uint8_t seed)
int len = 4 + 2 * (!!(*grehdr & 1) + /* Checksum */
!!(*grehdr & 2) + /* Routing */
!!(*grehdr & 4) + /* Key */
!!(*grehdr & 8)); /* Sequence Number */
uint16_t proto = ntohs(*(const uint16_t *)(const void *)(grehdr + 2));
rc = decode_ip_n_hash((const struct ip *)(grehdr + len),
rc = decode_ipv6_n_hash((const struct ip6_hdr *)(grehdr + len),
rc = pkt_hdr_hash(grehdr + len, hash_split, seed);
struct grehdr *const gre = (struct grehdr *) outp;
struct grehdr *const gre = (struct grehdr *) data;
sizeof(struct grehdr),