12#ifndef __PACKET_RPC_H__
13#define __PACKET_RPC_H__
16#include "ws_symbol_export.h"
33#define AUTH_GSSAPI 300001
37#define RPCSEC_GSS_KRB5 390003
38#define RPCSEC_GSS_KRB5I 390004
39#define RPCSEC_GSS_KRB5P 390005
40#define RPCSEC_GSS_LIPKEY 390006
41#define RPCSEC_GSS_LIPKEY_I 390007
42#define RPCSEC_GSS_LIPKEY_P 390008
43#define RPCSEC_GSS_SPKM3 390009
44#define RPCSEC_GSS_SPKM3I 390010
45#define RPCSEC_GSS_SPKM3P 390011
50#define AUTH_GLUSTERFS 390039
51#define AUTH_GLUSTERFS_V3 390040
58#define PROG_MISMATCH 2
67#define AUTH_REJECTEDCRED 2
69#define AUTH_REJECTEDVERF 4
71#define RPCSEC_GSSCREDPROB 13
72#define RPCSEC_GSSCTXPROB 14
74#define RPCSEC_GSS_DATA 0
75#define RPCSEC_GSS_INIT 1
76#define RPCSEC_GSS_CONTINUE_INIT 2
77#define RPCSEC_GSS_DESTROY 3
79#define AUTH_GSSAPI_EXIT 0
80#define AUTH_GSSAPI_INIT 1
81#define AUTH_GSSAPI_CONTINUE_INIT 2
82#define AUTH_GSSAPI_MSG 3
83#define AUTH_GSSAPI_DESTROY 4
85#define RPCSEC_GSS_SVC_NONE 1
86#define RPCSEC_GSS_SVC_INTEGRITY 2
87#define RPCSEC_GSS_SVC_PRIVACY 3
89#define AUTHDES_NAMEKIND_FULLNAME 0
90#define AUTHDES_NAMEKIND_NICKNAME 1
92#define RPC_STRING_EMPTY "<EMPTY>"
93#define RPC_STRING_DATA "<DATA>"
94#define RPC_STRING_TRUNCATED "<TRUNCATED>"
96#define RPC_RM_LASTFRAG 0x80000000U
97#define RPC_RM_FRAGLEN 0x7fffffffU
103 FLAVOR_GSSAPI_NO_INFO,
106 FLAVOR_AUTHGSSAPI_MSG
133 dissector_t dissect_call;
134 dissector_t dissect_reply;
139 const vsff *proc_table;
145WS_DLL_PUBLIC
void rpc_init_prog(
int proto, uint32_t prog,
int ett,
size_t nvers,
147WS_DLL_PUBLIC
const char *rpc_prog_name(uint32_t prog);
148WS_DLL_PUBLIC
const char *rpc_proc_name(
wmem_allocator_t *allocator, uint32_t prog, uint32_t vers, uint32_t proc);
149WS_DLL_PUBLIC
int rpc_prog_hf(uint32_t prog, uint32_t vers);
151WS_DLL_PUBLIC
unsigned int rpc_roundup(
unsigned int a);
152WS_DLL_PUBLIC
int dissect_rpc_void(
tvbuff_t *tvb,
154WS_DLL_PUBLIC
int dissect_rpc_unknown(
tvbuff_t *tvb,
156WS_DLL_PUBLIC
int dissect_rpc_bool(
tvbuff_t *tvb,
158WS_DLL_PUBLIC
int dissect_rpc_string(
tvbuff_t *tvb,
159 proto_tree *tree,
int hfindex,
int offset,
const char **string_buffer_ret);
161int dissect_rpc_opaque_data(
tvbuff_t *tvb,
int offset,
165 bool fixed_length, uint32_t length,
166 bool string_data,
const char **string_buffer_ret,
167 dissect_function_t *dissect_it);
168WS_DLL_PUBLIC
int dissect_rpc_data(
tvbuff_t *tvb,
170WS_DLL_PUBLIC
int dissect_rpc_bytes(
tvbuff_t *tvb,
171 proto_tree *tree,
int hfindex,
int offset, uint32_t length,
172 bool string_data,
const char **string_buffer_ret);
174 proto_tree *tree,
int offset, dissect_function_t *rpc_list_dissector,
177 proto_tree *tree,
int offset, dissect_function_t *rpc_array_dissector,
179WS_DLL_PUBLIC
int dissect_rpc_uint32(
tvbuff_t *tvb,
181WS_DLL_PUBLIC
int dissect_rpc_uint64(
tvbuff_t *tvb,
185 proto_tree *tree,
int offset,
int args_id, uint32_t prog, uint32_t vers,
188 proto_tree *tree,
int offset,
int result_id,
int prog_id,
int vers_id,
197 const char* progname;
198 GArray *procedure_hfs;
207WS_DLL_PUBLIC GHashTable *rpc_progs;
Definition packet_info.h:43
Definition packet-rpc.h:109
Definition packet-rpc.h:209
Definition packet-rpc.h:137
Definition packet-rpc.h:193
Definition value_string.h:25
Definition packet-rpc.h:130
Definition wmem_allocator.h:27
Definition packet-rpc.h:216
Definition tvbuff-int.h:35