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
122} rpc_call_info_value;
125typedef int (dissect_function_t)(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo, proto_tree* tree,
void* data);
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,
146 const rpc_prog_vers_info *versions);
147WS_DLL_PUBLIC
const char *rpc_proc_name(
wmem_allocator_t *allocator, uint32_t prog, uint32_t vers, uint32_t proc);
148WS_DLL_PUBLIC
int rpc_prog_hf(uint32_t prog, uint32_t vers);
150WS_DLL_PUBLIC
unsigned int rpc_roundup(
unsigned int a);
151WS_DLL_PUBLIC
int dissect_rpc_void(tvbuff_t *tvb,
153WS_DLL_PUBLIC
int dissect_rpc_unknown(tvbuff_t *tvb,
155WS_DLL_PUBLIC
unsigned dissect_rpc_bool(tvbuff_t *tvb,
156 proto_tree *tree,
int hfindex,
unsigned offset);
157WS_DLL_PUBLIC
unsigned dissect_rpc_string(tvbuff_t *tvb,
packet_info* pinfo,
158 proto_tree *tree,
int hfindex,
unsigned offset,
const char **string_buffer_ret);
160unsigned dissect_rpc_opaque_data(tvbuff_t *tvb,
unsigned offset,
164 bool fixed_length, uint32_t length,
165 bool string_data,
const char **string_buffer_ret,
166 dissect_function_t *dissect_it);
167WS_DLL_PUBLIC
unsigned dissect_rpc_data(tvbuff_t *tvb,
packet_info* pinfo,
168 proto_tree *tree,
int hfindex,
unsigned offset);
169WS_DLL_PUBLIC
unsigned dissect_rpc_bytes(tvbuff_t *tvb,
packet_info* pinfo,
170 proto_tree *tree,
int hfindex,
unsigned offset, uint32_t length,
171 bool string_data,
const char **string_buffer_ret);
172WS_DLL_PUBLIC
unsigned dissect_rpc_list(tvbuff_t *tvb,
packet_info *pinfo,
173 proto_tree *tree,
unsigned offset, dissect_function_t *rpc_list_dissector,
175WS_DLL_PUBLIC
unsigned dissect_rpc_array(tvbuff_t *tvb,
packet_info *pinfo,
176 proto_tree *tree,
unsigned offset, dissect_function_t *rpc_array_dissector,
178WS_DLL_PUBLIC
unsigned dissect_rpc_uint32(tvbuff_t *tvb,
179 proto_tree *tree,
int hfindex,
unsigned offset);
180WS_DLL_PUBLIC
unsigned dissect_rpc_uint64(tvbuff_t *tvb,
181 proto_tree *tree,
int hfindex,
unsigned offset);
183WS_DLL_PUBLIC
unsigned dissect_rpc_indir_call(tvbuff_t *tvb,
packet_info *pinfo,
184 proto_tree *tree,
unsigned offset,
int args_id, uint32_t prog, uint32_t vers,
186WS_DLL_PUBLIC
unsigned dissect_rpc_indir_reply(tvbuff_t *tvb,
packet_info *pinfo,
187 proto_tree *tree,
unsigned offset,
int result_id,
int prog_id,
int vers_id,
189WS_DLL_PUBLIC
unsigned dissect_rpc_opaque_auth(tvbuff_t* tvb, proto_tree* tree,
196 const char* progname;
198} rpc_prog_info_value;
struct _packet_info packet_info
Represents the metadata and indexing information for a single captured frame.
struct _protocol protocol_t
Definition proto.h:100
struct _wmem_array_t wmem_array_t
Opaque type representing a dynamically resizable array in the wmem system.
Definition wmem_array.h:42
struct _wmem_allocator_t wmem_allocator_t
Definition wmem_core.h:44
Definition packet-rpc.h:109
Definition packet-rpc.h:200
Definition packet-rpc.h:137
Definition packet-rpc.h:192
Definition packet-rpc.h:130
Definition packet-rpc.h:207
struct _value_string value_string
Mapping between a 32-bit integer value and its string representation.