-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
+/*
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * Copyright (c) 2014, Intel Corporation.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * lustre/utils/gss/lsupport.h
*/
#ifndef __LSUPPORT_H__
#define __LSUPPORT_H__
+#include <assert.h>
#include <unistd.h>
+#include <stdbool.h>
#include <stdint.h>
-#include <libcfs/libcfs.h>
+#include <libcfs/util/list.h>
+#include <linux/lnet/lnet-types.h>
+#include <linux/lnet/nidstr.h>
#define GSSD_CLI (0)
#define GSSD_SVC (1)
#define LUSTRE_GSS_SVC_MDS 1
#define LUSTRE_GSS_SVC_OSS 2
+#define LUSTRE_GSS_SVC_MASK 0x0000FFFF
+#define LUSTRE_GSS_MECH_MASK 0xFFFF0000
+#define LUSTRE_GSS_MECH_SHIFT 16
+
extern const char * lustre_svc_name[];
+enum lgss_mech {
+ LGSS_MECH_KRB5 = 0,
+ LGSS_MECH_NULL = 1,
+ LGSS_MECH_SK = 2,
+};
+
+enum {
+ /* sec part flags */
+ LGSS_ROOT_CRED_ROOT = 0x01,
+ LGSS_ROOT_CRED_MDT = 0x02,
+ LGSS_ROOT_CRED_OST = 0x04,
+ /* service type flags */
+ LGSS_SVC_NULL = 0x10,
+ LGSS_SVC_AUTH = 0x20,
+ LGSS_SVC_INTG = 0x40,
+ LGSS_SVC_PRIV = 0x80,
+ /* Number of sec part flags */
+ LGSS_ROOT_CRED_NR = 3,
+};
+
struct lgssd_upcall_data {
uint32_t seq;
uint32_t uid;
char obd[64];
};
-#define GSSD_INTERFACE_VERSION (1)
+#define GSSD_INTERFACE_VERSION GSSD_INTERFACE_VERSION_V2
+#define GSSD_INTERFACE_VERSION_V2 (2)
+#define GSSD_INTERFACE_VERSION_V1 (1)
struct lgssd_ioctl_param {
int version; /* in */