Whamcloud - gitweb
LU-5639 lnet: portal spreading rotor should be unsigned
[fs/lustre-release.git] / lnet / include / lnet / lib-types.h
index b9b9f45..a6e92bf 100644 (file)
 #ifndef __LNET_LIB_TYPES_H__
 #define __LNET_LIB_TYPES_H__
 
-#if defined(__linux__)
 #include <lnet/linux/lib-types.h>
-#elif defined(__APPLE__)
-#include <lnet/darwin/lib-types.h>
-#elif defined(__WINNT__)
-#include <lnet/winnt/lib-types.h>
-#include <libcfs/libcfs_pack.h>
-#include <libcfs/libcfs_unpack.h>
-#else
-#error Unsupported Operating System
-#endif
 
 #include <libcfs/libcfs.h>
 #include <libcfs/list.h>
@@ -413,7 +403,7 @@ struct lnet_tx_queue {
        struct list_head        tq_delayed;     /* delayed TXs */
 };
 
-#define LNET_MAX_INTERFACES   16
+#define LNET_MAX_INTERFACES    16
 
 typedef struct lnet_ni {
 #ifdef __KERNEL__
@@ -454,6 +444,7 @@ typedef struct lnet_ni {
 #define LNET_PING_FEAT_INVAL           (0)             /* no feature */
 #define LNET_PING_FEAT_BASE            (1 << 0)        /* just a ping */
 #define LNET_PING_FEAT_NI_STATUS       (1 << 1)        /* return NI status */
+#define LNET_PING_FEAT_RTE_DISABLED    (1 << 2)        /* Routing enabled */
 
 #define LNET_PING_FEAT_MASK            (LNET_PING_FEAT_BASE | \
                                         LNET_PING_FEAT_NI_STATUS)
@@ -539,6 +530,8 @@ typedef struct lnet_peer {
 struct lnet_peer_table {
        int                     pt_version;     /* /proc validity stamp */
        int                     pt_number;      /* # peers extant */
+       int                     pt_zombies;     /* # zombies to go to deathrow
+                                                * (and not there yet) */
        struct list_head        pt_deathrow;    /* zombie peers */
        struct list_head        *pt_hash;       /* NID->peer hash */
 };
@@ -593,23 +586,28 @@ typedef struct {
        lnet_kiov_t              rb_kiov[0];    /* the buffer space */
 } lnet_rtrbuf_t;
 
-typedef struct {
-        __u32        msgs_alloc;
-        __u32        msgs_max;
-        __u32        errors;
-        __u32        send_count;
-        __u32        recv_count;
-        __u32        route_count;
-        __u32        drop_count;
-        __u64        send_length;
-        __u64        recv_length;
-        __u64        route_length;
-        __u64        drop_length;
+typedef struct lnet_counters {
+       __u32 msgs_alloc;
+       __u32 msgs_max;
+       __u32 errors;
+       __u32 send_count;
+       __u32 recv_count;
+       __u32 route_count;
+       __u32 drop_count;
+       __u64 send_length;
+       __u64 recv_length;
+       __u64 route_length;
+       __u64 drop_length;
 } WIRE_ATTR lnet_counters_t;
 
 #define LNET_PEER_HASHSIZE   503                /* prime! */
 
-#define LNET_NRBPOOLS         3                 /* # different router buffer pools */
+#define LNET_TINY_BUF_IDX      0
+#define LNET_SMALL_BUF_IDX     1
+#define LNET_LARGE_BUF_IDX     2
+
+/* # different router buffer pools */
+#define LNET_NRBPOOLS          (LNET_LARGE_BUF_IDX + 1)
 
 enum {
        /* Didn't match anything */
@@ -696,7 +694,7 @@ typedef struct lnet_portal {
        /* Match table for each CPT */
        struct lnet_match_table **ptl_mtables;
        /* spread rotor of incoming "PUT" */
-       int                     ptl_rotor;
+       unsigned int            ptl_rotor;
        /* # active entries for this portal */
        int                     ptl_mt_nmaps;
        /* array of active entries' cpu-partition-id */
@@ -843,12 +841,16 @@ typedef struct
        /* registered LNDs */
        struct list_head                ln_lnds;
 
-       /* space for network names */
-       char                            *ln_network_tokens;
-       int                             ln_network_tokens_nob;
        /* test protocol compatibility flags */
        int                             ln_testprotocompat;
 
+       /* 0 - load the NIs from the mod params
+        * 1 - do not load the NIs from the mod params
+        * Reverse logic to ensure that other calls to LNetNIInit
+        * need no change
+        */
+       bool                            ln_nis_from_mod_params;
+
 #ifndef __KERNEL__
        /* Temporary workaround to allow uOSS and test programs force
         * server mode in userspace. The only place where we use it is