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_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
int dissect_rpc_bool(
tvbuff_t *tvb,
158 proto_tree *tree,
int hfindex,
int offset,
const char **string_buffer_ret);
160int dissect_rpc_opaque_data(
tvbuff_t *tvb,
int offset,
164 bool fixed_length, uint32_t length,
165 bool string_data,
const char **string_buffer_ret,
166 dissect_function_t *dissect_it);
170 proto_tree *tree,
int hfindex,
int offset, uint32_t length,
171 bool string_data,
const char **string_buffer_ret);
173 proto_tree *tree,
int offset, dissect_function_t *rpc_list_dissector,
176 proto_tree *tree,
int offset, dissect_function_t *rpc_array_dissector,
178WS_DLL_PUBLIC
int dissect_rpc_uint32(
tvbuff_t *tvb,
180WS_DLL_PUBLIC
int dissect_rpc_uint64(
tvbuff_t *tvb,
184 proto_tree *tree,
int offset,
int args_id, uint32_t prog, uint32_t vers,
187 proto_tree *tree,
int offset,
int result_id,
int prog_id,
int vers_id,
196 const char* progname;
Definition packet_info.h:43
Definition packet-rpc.h:109
Definition packet-rpc.h:200
Definition packet-rpc.h:137
Definition packet-rpc.h:192
Mapping between a 32-bit integer value and its string representation.
Definition value_string.h:33
Definition packet-rpc.h:130
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
Definition wmem_array.c:27
Definition packet-rpc.h:207
Definition tvbuff-int.h:35