struct list_head        xpt_list;
        struct list_head        xpt_ready;
        unsigned long           xpt_flags;
-#define        XPT_BUSY        0               /* enqueued/receiving */
-#define        XPT_CONN        1               /* conn pending */
-#define        XPT_CLOSE       2               /* dead or dying */
-#define        XPT_DATA        3               /* data pending */
-#define        XPT_TEMP        4               /* connected transport */
-#define        XPT_DEAD        6               /* transport closed */
-#define        XPT_CHNGBUF     7               /* need to change snd/rcv buf sizes */
-#define        XPT_DEFERRED    8               /* deferred request pending */
-#define        XPT_OLD         9               /* used for xprt aging mark+sweep */
-#define XPT_LISTENER   10              /* listening endpoint */
-#define XPT_CACHE_AUTH 11              /* cache auth info */
-#define XPT_LOCAL      12              /* connection from loopback interface */
-#define XPT_KILL_TEMP   13             /* call xpo_kill_temp_xprt before closing */
-#define XPT_CONG_CTRL  14              /* has congestion control */
-#define XPT_HANDSHAKE  15              /* xprt requests a handshake */
-#define XPT_TLS_SESSION        16              /* transport-layer security established */
-#define XPT_PEER_AUTH  17              /* peer has been authenticated */
 
        struct svc_serv         *xpt_server;    /* service for transport */
        atomic_t                xpt_reserved;   /* space on outq that is rsvd */
        struct rpc_xprt_switch  *xpt_bc_xps;    /* NFSv4.1 backchannel */
 };
 
+/* flag bits for xpt_flags */
+enum {
+       XPT_BUSY,               /* enqueued/receiving */
+       XPT_CONN,               /* conn pending */
+       XPT_CLOSE,              /* dead or dying */
+       XPT_DATA,               /* data pending */
+       XPT_TEMP,               /* connected transport */
+       XPT_DEAD,               /* transport closed */
+       XPT_CHNGBUF,            /* need to change snd/rcv buf sizes */
+       XPT_DEFERRED,           /* deferred request pending */
+       XPT_OLD,                /* used for xprt aging mark+sweep */
+       XPT_LISTENER,           /* listening endpoint */
+       XPT_CACHE_AUTH,         /* cache auth info */
+       XPT_LOCAL,              /* connection from loopback interface */
+       XPT_KILL_TEMP,          /* call xpo_kill_temp_xprt before closing */
+       XPT_CONG_CTRL,          /* has congestion control */
+       XPT_HANDSHAKE,          /* xprt requests a handshake */
+       XPT_TLS_SESSION,        /* transport-layer security established */
+       XPT_PEER_AUTH,          /* peer has been authenticated */
+};
+
 static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
 {
        spin_lock(&xpt->xpt_lock);
 
                __get_str(procedure), __entry->execute)
 );
 
+/*
+ * from include/linux/sunrpc/svc_xprt.h
+ */
+#define SVC_XPRT_FLAG_LIST                                             \
+       svc_xprt_flag(BUSY)                                             \
+       svc_xprt_flag(CONN)                                             \
+       svc_xprt_flag(CLOSE)                                            \
+       svc_xprt_flag(DATA)                                             \
+       svc_xprt_flag(TEMP)                                             \
+       svc_xprt_flag(DEAD)                                             \
+       svc_xprt_flag(CHNGBUF)                                          \
+       svc_xprt_flag(DEFERRED)                                         \
+       svc_xprt_flag(OLD)                                              \
+       svc_xprt_flag(LISTENER)                                         \
+       svc_xprt_flag(CACHE_AUTH)                                       \
+       svc_xprt_flag(LOCAL)                                            \
+       svc_xprt_flag(KILL_TEMP)                                        \
+       svc_xprt_flag(CONG_CTRL)                                        \
+       svc_xprt_flag(HANDSHAKE)                                        \
+       svc_xprt_flag(TLS_SESSION)                                      \
+       svc_xprt_flag_end(PEER_AUTH)
+
+#undef svc_xprt_flag
+#undef svc_xprt_flag_end
+#define svc_xprt_flag(x)       TRACE_DEFINE_ENUM(XPT_##x);
+#define svc_xprt_flag_end(x)   TRACE_DEFINE_ENUM(XPT_##x);
+
+SVC_XPRT_FLAG_LIST
+
+#undef svc_xprt_flag
+#undef svc_xprt_flag_end
+#define svc_xprt_flag(x)       { BIT(XPT_##x), #x },
+#define svc_xprt_flag_end(x)   { BIT(XPT_##x), #x }
+
 #define show_svc_xprt_flags(flags)                                     \
-       __print_flags(flags, "|",                                       \
-               { BIT(XPT_BUSY),                "BUSY" },               \
-               { BIT(XPT_CONN),                "CONN" },               \
-               { BIT(XPT_CLOSE),               "CLOSE" },              \
-               { BIT(XPT_DATA),                "DATA" },               \
-               { BIT(XPT_TEMP),                "TEMP" },               \
-               { BIT(XPT_DEAD),                "DEAD" },               \
-               { BIT(XPT_CHNGBUF),             "CHNGBUF" },            \
-               { BIT(XPT_DEFERRED),            "DEFERRED" },           \
-               { BIT(XPT_OLD),                 "OLD" },                \
-               { BIT(XPT_LISTENER),            "LISTENER" },           \
-               { BIT(XPT_CACHE_AUTH),          "CACHE_AUTH" },         \
-               { BIT(XPT_LOCAL),               "LOCAL" },              \
-               { BIT(XPT_KILL_TEMP),           "KILL_TEMP" },          \
-               { BIT(XPT_CONG_CTRL),           "CONG_CTRL" },          \
-               { BIT(XPT_HANDSHAKE),           "HANDSHAKE" },          \
-               { BIT(XPT_TLS_SESSION),         "TLS_SESSION" },        \
-               { BIT(XPT_PEER_AUTH),           "PEER_AUTH" })
+       __print_flags(flags, "|", SVC_XPRT_FLAG_LIST)
 
 TRACE_EVENT(svc_xprt_create_err,
        TP_PROTO(