HTTPS (almost) everywhere.
[metze/wireshark/wip.git] / epan / dissectors / packet-dcerpc-rras.c
1 /* packet-dcerpc-rras.c
2  * Routines for the rras (Routing and Remote Access service) MSRPC interface
3  * Copyright 2005 Jean-Baptiste Marchand <jbm@hsc.fr>
4  *
5  * Wireshark - Network traffic analyzer
6  * By Gerald Combs <gerald@wireshark.org>
7  * Copyright 1998 Gerald Combs
8  *
9  * SPDX-License-Identifier: GPL-2.0-or-later
10  */
11
12
13 #include "config.h"
14
15 #include <epan/packet.h>
16 #include "packet-dcerpc.h"
17 #include "packet-dcerpc-rras.h"
18
19 void proto_register_dcerpc_rras(void);
20 void proto_reg_handoff_dcerpc_rras(void);
21
22 static int proto_dcerpc_rras = -1;
23
24 static int hf_rras_opnum = -1;
25
26 static gint ett_dcerpc_rras = -1;
27
28 /*
29  * The rras MSRPC interface is typically reached using the ncacn_np transport
30  * and the \pipe\ROUTER named pipe as endpoint.
31  */
32
33 static e_guid_t uuid_dcerpc_rras = {
34         0x8f09f000, 0xb7ed, 0x11ce,
35         { 0xbb, 0xd2, 0x00, 0x00, 0x1a, 0x18, 0x1c, 0xad }
36 };
37
38 static guint16 ver_dcerpc_rras = 0;
39
40
41 static dcerpc_sub_dissector dcerpc_rras_dissectors[] = {
42         { RRAS_ADMIN_SERVER_GETINFO,
43                 "MprAdminServerGetInfo", NULL, NULL },
44         { RRAS_ADMIN_CONNECTION_ENUM,
45                 "RasAdminConnectionEnum", NULL, NULL },
46         { RRAS_ADMIN_CONNECTION_GETINFO,
47                 "RasAdminConnectionGetInfo", NULL, NULL },
48         { RRAS_ADMIN_CONNECTION_CLEARSTATS,
49                 "RasAdminConnectionClearStats", NULL, NULL },
50         { RRAS_ADMIN_PORT_ENUM,
51                 "RasAdminPortEnum", NULL, NULL },
52         { RRAS_ADMIN_PORT_GETINFO,
53                 "RasAdminPortGetInfo", NULL, NULL },
54         { RRAS_ADMIN_PORT_CLEARSTATS,
55                 "RasAdminPortClearStats", NULL, NULL },
56         { RRAS_ADMIN_PORT_RESET,
57                 "RasAdminPortReset", NULL, NULL },
58         { RRAS_ADMIN_PORT_DISCONNECT,
59                 "RasAdminPortDisconnect", NULL, NULL },
60         { RRAS_RI_TRANS_SET_GLOBALINFO,
61                 "RouterInterfaceTransportSetGlobalInfo", NULL, NULL },
62         { RRAS_RI_TRANS_GET_GLOBALINFO,
63                 "RouterInterfaceTransportGetGlobalInfo", NULL, NULL },
64         { RRAS_RI_GET_HANDLE,
65                 "RouterInterfaceGetHandle", NULL, NULL },
66         { RRAS_RI_CREATE,
67                 "RouterInterfaceCreate", NULL, NULL },
68         { RRAS_RI_GETINFO,
69                 "RouterInterfaceGetInfo", NULL, NULL },
70         { RRAS_RI_SETINFO,
71                 "RouterInterfaceSetInfo", NULL, NULL },
72         { RRAS_RI_DELETE,
73                 "RouterInterfaceDelete", NULL, NULL },
74         { RRAS_TRANS_REMOVE,
75                 "RouterInterfaceTransportRemove", NULL, NULL },
76         { RRAS_TRANS_ADD,
77                 "RouterInterfaceTransportAdd", NULL, NULL },
78         { RRAS_TRANS_GETINFO,
79                 "RouterInterfaceTransportGetInfo", NULL, NULL },
80         { RRAS_TRANS_SETINFO,
81                 "RouterInterfaceTransportSetInfo", NULL, NULL },
82         { RRAS_RI_ENUM,
83                 "RouterInterfaceEnum", NULL, NULL },
84         { RRAS_RI_CONNECT,
85                 "RouterInterfaceConnect", NULL, NULL },
86         { RRAS_RI_DISCONNECT,
87                 "RouterInterfaceDisconnect", NULL, NULL },
88         { RRAS_RI_UPDATE_ROUTES,
89                 "RouterInterfaceUpdateRoutes", NULL, NULL },
90         { RRAS_RI_QUERY_UPDATE_RESULT,
91                 "RouterInterfaceQueryUpdateResult", NULL, NULL },
92         { RRAS_RI_UPDATE_PB_INFO,
93                 "RouterInterfaceUpdatePhonebookInfo", NULL, NULL },
94         { RRAS_MIB_ENTRY_CREATE, "MIBEntryCreate", NULL, NULL },
95         { RRAS_MIB_ENTRY_DELETE, "MIBEntryDelete", NULL, NULL },
96         { RRAS_MIB_ENTRY_SET, "MIBEntrySet", NULL, NULL },
97         { RRAS_MIB_ENTRY_GET, "MIBEntryGet", NULL, NULL },
98         { RRAS_MIB_GET_FIRST, "MIBEntryGetFirst", NULL, NULL },
99         { RRAS_MIB_GET_NEXT, "MIBEntryGetNext", NULL, NULL },
100         { RRAS_GET_TRAP_INFO, "MIBGetTrapInfo", NULL, NULL },
101         { RRAS_SET_TRAP_INFO, "MIBSetTrapInfo", NULL, NULL },
102         { RRAS_ADMIN_CONNECTION_NOTIFICATION,
103                 "RasAdminConnectionNotification", NULL, NULL },
104         { RRAS_ADMIN_SEND_USER_MSG, "RasAdminSendUserMessage", NULL, NULL },
105         { RRAS_ROUTER_DEVICE_ENUM, "RouterDeviceEnum", NULL, NULL },
106         { RRAS_RI_TRANSPORT_CREATE,
107                 "RouterInterfaceTransportCreate", NULL, NULL },
108         { RRAS_RI_DEV_GETINFO, "RouterInterfaceDeviceGetInfo", NULL, NULL },
109         { RRAS_RI_DEV_SETINFO, "RouterInterfaceDeviceSetInfo", NULL, NULL },
110         { RRAS_RI_SET_CRED_EX, "RouterInterfaceSetCredentialsEx", NULL, NULL },
111         { RRAS_RI_GET_CRED_EX, "RouterInterfaceGetCredentialsEx", NULL, NULL },
112         { RRAS_ADMIN_CONNECTION_REM_QUARANT,
113                 "RasAdminConnectionRemoveQuarantine", NULL, NULL },
114         { 0, NULL, NULL,  NULL }
115 };
116
117
118 void
119 proto_register_dcerpc_rras(void)
120 {
121
122         static hf_register_info hf[] = {
123
124                 { &hf_rras_opnum,
125                   { "Operation", "rras.opnum", FT_UINT16, BASE_DEC,
126                    NULL, 0x0, NULL, HFILL }},
127         };
128
129
130         static gint *ett[] = {
131                 &ett_dcerpc_rras,
132         };
133
134
135         proto_dcerpc_rras = proto_register_protocol(
136                 "Microsoft Routing and Remote Access Service", "RRAS", "rras");
137
138         proto_register_field_array(proto_dcerpc_rras, hf, array_length(hf));
139
140         proto_register_subtree_array(ett, array_length(ett));
141
142 }
143
144
145 void
146 proto_reg_handoff_dcerpc_rras(void)
147 {
148         /* register protocol as dcerpc */
149
150         dcerpc_init_uuid(
151                 proto_dcerpc_rras, ett_dcerpc_rras, &uuid_dcerpc_rras,
152                 ver_dcerpc_rras, dcerpc_rras_dissectors, hf_rras_opnum);
153 }
154
155 /*
156  * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
157  *
158  * Local variables:
159  * c-basic-offset: 8
160  * tab-width: 8
161  * indent-tabs-mode: t
162  * End:
163  *
164  * vi: set shiftwidth=8 tabstop=8 noexpandtab:
165  * :indentSize=8:tabSize=8:noTabs=false:
166  */