Whamcloud - gitweb
- make HEAD from b_post_cmd3
[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 struct lgssd_upcall_data {
25         uint32_t        seq;
26         uint32_t        uid;
27         uint32_t        gid;
28         uint32_t        svc;
29         uint64_t        nid;
30         char            obd[64];
31 };
32
33 #define GSSD_INTERFACE_VERSION        (1)
34
35 struct lgssd_ioctl_param {
36         int             version;        /* in   */
37         char           *uuid;           /* in   */
38         int             lustre_svc;     /* in   */
39         uid_t           uid;            /* in   */
40         gid_t           gid;            /* in   */
41         long            send_token_size;/* in   */
42         char           *send_token;     /* in   */
43         long            reply_buf_size; /* in   */
44         char           *reply_buf;      /* in   */
45         long            status;         /* out  */
46         long            reply_length;   /* out  */
47 };
48
49 #define GSSD_DEFAULT_GETHOSTNAME_EX     "/etc/lustre/nid2hostname"
50 #define MAPPING_DATABASE_FILE           "/etc/lustre/idmap.conf"
51
52 typedef uint64_t lnet_nid_t;
53 typedef uint32_t lnet_netid_t;
54
55 #define LNET_NID_ANY      ((lnet_nid_t) -1)
56 #define LNET_PID_ANY      ((lnet_pid_t) -1)
57
58 enum {
59         /* Only add to these values (i.e. don't ever change or redefine them):
60          * network addresses depend on them... */
61         QSWLND    = 1,
62         SOCKLND   = 2,
63         GMLND     = 3,
64         PTLLND    = 4,
65         O2IBLND   = 5,
66         CIBLND    = 6,
67         OPENIBLND = 7,
68         IIBLND    = 8,
69         LOLND     = 9,
70         RALND     = 10,
71         VIBLND    = 11,
72         LND_ENUM_END_MARKER
73 };
74
75 int lnet_nid2hostname(lnet_nid_t nid, char *buf, int buflen);
76 void cleanup_mapping(void);
77 int lookup_mapping(char *princ, uint64_t nid, uid_t *uid);
78 lnet_nid_t libcfs_str2nid(char *str);
79
80 /* how an LNET NID encodes net:address */
81 #define LNET_NIDADDR(nid)      ((uint32_t)((nid) & 0xffffffff))
82 #define LNET_NIDNET(nid)       ((uint32_t)(((nid) >> 32)) & 0xffffffff)
83 #define LNET_MKNID(net,addr)   ((((uint64_t)(net))<<32)|((uint64_t)(addr)))
84 /* how net encodes type:number */
85 #define LNET_NETNUM(net)       ((net) & 0xffff)
86 #define LNET_NETTYP(net)       (((net) >> 16) & 0xffff)
87 #define LNET_MKNET(typ,num)    ((((uint32_t)(typ))<<16)|((uint32_t)(num)))
88
89 #endif /* __LIBCFS_H__ */