Whamcloud - gitweb
land b_colibri_devel on HEAD:
[fs/lustre-release.git] / lustre / utils / gss / lsupport.h
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  */
4
5 #ifndef __LIBCFS_H__
6 #define __LIBCFS_H__
7
8 #include <unistd.h>
9 #include <stdint.h>
10
11 #define GSSD_CLI        (0)
12 #define GSSD_SVC        (1)
13
14 void gssd_init_unique(int type);
15 void gssd_exit_unique(int type);
16
17 /*
18  * copied from lustre source
19  */
20
21 #define LUSTRE_GSS_SVC_MDS      0
22 #define LUSTRE_GSS_SVC_OSS      1
23
24 extern const char * lustre_svc_name[];
25
26 struct lgssd_upcall_data {
27         uint32_t        seq;
28         uint32_t        uid;
29         uint32_t        gid;
30         uint32_t        svc;
31         uint64_t        nid;
32         char            obd[64];
33 };
34
35 #define GSSD_INTERFACE_VERSION        (1)
36
37 struct lgssd_ioctl_param {
38         int             version;        /* in   */
39         int             secid;          /* in   */
40         char           *uuid;           /* in   */
41         int             lustre_svc;     /* in   */
42         uid_t           uid;            /* in   */
43         gid_t           gid;            /* in   */
44         long            send_token_size;/* in   */
45         char           *send_token;     /* in   */
46         long            reply_buf_size; /* in   */
47         char           *reply_buf;      /* in   */
48         long            status;         /* out  */
49         long            reply_length;   /* out  */
50 };
51
52 #define GSSD_DEFAULT_GETHOSTNAME_EX     "/etc/lustre/nid2hostname"
53 #define MAPPING_DATABASE_FILE           "/etc/lustre/idmap.conf"
54
55 typedef uint64_t lnet_nid_t;
56 typedef uint32_t lnet_netid_t;
57
58 #define LNET_NID_ANY      ((lnet_nid_t) -1)
59 #define LNET_PID_ANY      ((lnet_pid_t) -1)
60
61 enum {
62         /* Only add to these values (i.e. don't ever change or redefine them):
63          * network addresses depend on them... */
64         QSWLND    = 1,
65         SOCKLND   = 2,
66         GMLND     = 3,
67         PTLLND    = 4,
68         O2IBLND   = 5,
69         CIBLND    = 6,
70         OPENIBLND = 7,
71         IIBLND    = 8,
72         LOLND     = 9,
73         RALND     = 10,
74         VIBLND    = 11,
75         LND_ENUM_END_MARKER
76 };
77
78 int lnet_nid2hostname(lnet_nid_t nid, char *buf, int buflen);
79 void cleanup_mapping(void);
80 int lookup_mapping(char *princ, uint64_t nid, uid_t *uid);
81 lnet_nid_t libcfs_str2nid(char *str);
82
83 /* how an LNET NID encodes net:address */
84 #define LNET_NIDADDR(nid)      ((uint32_t)((nid) & 0xffffffff))
85 #define LNET_NIDNET(nid)       ((uint32_t)(((nid) >> 32)) & 0xffffffff)
86 #define LNET_MKNID(net,addr)   ((((uint64_t)(net))<<32)|((uint64_t)(addr)))
87 /* how net encodes type:number */
88 #define LNET_NETNUM(net)       ((net) & 0xffff)
89 #define LNET_NETTYP(net)       (((net) >> 16) & 0xffff)
90 #define LNET_MKNET(typ,num)    ((((uint32_t)(typ))<<16)|((uint32_t)(num)))
91
92 #endif /* __LIBCFS_H__ */