summaryrefslogtreecommitdiffstats
path: root/sys/net/if_gre.h
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2008-06-20 17:26:34 +0000
committerthompsa <thompsa@FreeBSD.org>2008-06-20 17:26:34 +0000
commit0c235e44e0fb17bd33556dadd61d7697ab1920d5 (patch)
treea90b65055cf5a78462a29c060cc9bd280ab22b9d /sys/net/if_gre.h
parentbf94b8a5bffc3904edd54af89110562e9fe1a2dc (diff)
downloadFreeBSD-src-0c235e44e0fb17bd33556dadd61d7697ab1920d5.zip
FreeBSD-src-0c235e44e0fb17bd33556dadd61d7697ab1920d5.tar.gz
Add support for the optional key in the GRE header.
PR: kern/114714 Submitted by: Cristian KLEIN
Diffstat (limited to 'sys/net/if_gre.h')
-rw-r--r--sys/net/if_gre.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/net/if_gre.h b/sys/net/if_gre.h
index 3c34bec..186d4cc 100644
--- a/sys/net/if_gre.h
+++ b/sys/net/if_gre.h
@@ -70,6 +70,9 @@ struct gre_softc {
int called; /* infinite recursion preventer */
+ uint32_t key; /* key included in outgoing GRE packets */
+ /* zero means none */
+
wccp_ver_t wccp_ver; /* version of the WCCP */
};
#define GRE2IFP(sc) ((sc)->sc_ifp)
@@ -79,6 +82,7 @@ struct gre_h {
u_int16_t flags; /* GRE flags */
u_int16_t ptype; /* protocol type of payload typically
Ether protocol type*/
+ uint32_t options[0]; /* optional options */
/*
* from here on: fields are optional, presence indicated by flags
*
@@ -111,6 +115,7 @@ struct greip {
#define gi_dst gi_i.ip_dst
#define gi_ptype gi_g.ptype
#define gi_flags gi_g.flags
+#define gi_options gi_g.options
#define GRE_CP 0x8000 /* Checksum Present */
#define GRE_RP 0x4000 /* Routing Present */
@@ -175,6 +180,8 @@ struct mobip_h {
#define GREGADDRD _IOWR('i', 104, struct ifreq)
#define GRESPROTO _IOW('i' , 105, struct ifreq)
#define GREGPROTO _IOWR('i', 106, struct ifreq)
+#define GREGKEY _IOWR('i', 107, struct ifreq)
+#define GRESKEY _IOW('i', 108, struct ifreq)
#ifdef _KERNEL
LIST_HEAD(gre_softc_head, gre_softc);
OpenPOWER on IntegriCloud