Whamcloud - gitweb
LU-9243 gss: fix GSS struct definition badness
[fs/lustre-release.git] / lustre / include / uapi / linux / lustre / lustre_idl.h
index 0162137..af885fa 100644 (file)
@@ -3632,6 +3632,77 @@ union nodemap_rec {
        struct nodemap_global_rec ngr;
 };
 
+/*
+ * rawobj stuff for GSS
+ */
+typedef struct netobj_s {
+       __u32 len;
+       __u8 data[0];
+} netobj_t;
+
+typedef struct rawobj_s {
+       __u32 len;
+       __u8 *data;
+} rawobj_t;
+
+/*
+ * GSS headers
+ * following 3 headers must have the same sizes and offsets
+ */
+struct gss_header {
+       __u8 gh_version;     /* gss version */
+       __u8 gh_sp;          /* sec part */
+       __u16 gh_pad0;
+       __u32 gh_flags;       /* wrap flags */
+       __u32 gh_proc;        /* proc */
+       __u32 gh_seq;         /* sequence */
+       __u32 gh_svc;         /* service */
+       __u32 gh_pad1;
+       __u32 gh_pad2;
+       __u32 gh_pad3;
+       netobj_t gh_handle;      /* context handle */
+};
+
+struct gss_rep_header {
+       __u8 gh_version;
+       __u8 gh_sp;
+       __u16 gh_pad0;
+       __u32 gh_flags;
+       __u32 gh_proc;
+       __u32 gh_major;
+       __u32 gh_minor;
+       __u32 gh_seqwin;
+       __u32 gh_pad2;
+       __u32 gh_pad3;
+       netobj_t gh_handle;
+};
+
+struct gss_err_header {
+       __u8 gh_version;
+       __u8 gh_sp;
+       __u16 gh_pad0;
+       __u32 gh_flags;
+       __u32 gh_proc;
+       __u32 gh_major;
+       __u32 gh_minor;
+       __u32 gh_pad1;
+       __u32 gh_pad2;
+       __u32 gh_pad3;
+       netobj_t gh_handle;
+};
+
+/*
+ * GSS part of wire context information sent from client, saved and
+ * used later by server.
+ */
+struct gss_wire_ctx {
+       __u32 gw_flags;
+       __u32 gw_proc;
+       __u32 gw_seq;
+       __u32 gw_svc;
+       rawobj_t gw_handle;
+};
+
 /* This is the lu_ladvise struct which goes out on the wire.
  * Corresponds to the userspace arg llapi_lu_ladvise.
  * value[1-4] are unspecified fields, used differently by different advices */