| .. | .. |
|---|
| 57 | 57 | |
|---|
| 58 | 58 | /* These fields used only by GRE */ |
|---|
| 59 | 59 | __u32 i_seqno; /* The last seen seqno */ |
|---|
| 60 | | - __u32 o_seqno; /* The last output seqno */ |
|---|
| 60 | + atomic_t o_seqno; /* The last output seqno */ |
|---|
| 61 | 61 | int hlen; /* tun_hlen + encap_hlen */ |
|---|
| 62 | 62 | int tun_hlen; /* Precalculated header length */ |
|---|
| 63 | 63 | int encap_hlen; /* Encap header length (FOU,GUE) */ |
|---|
| .. | .. |
|---|
| 69 | 69 | size_t (*encap_hlen)(struct ip_tunnel_encap *e); |
|---|
| 70 | 70 | int (*build_header)(struct sk_buff *skb, struct ip_tunnel_encap *e, |
|---|
| 71 | 71 | u8 *protocol, struct flowi6 *fl6); |
|---|
| 72 | + int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt, |
|---|
| 73 | + u8 type, u8 code, int offset, __be32 info); |
|---|
| 72 | 74 | }; |
|---|
| 73 | 75 | |
|---|
| 74 | 76 | #ifdef CONFIG_INET |
|---|