aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-01-20 05:06:38 +0000
committerGuy Harris <guy@alum.mit.edu>2005-01-20 05:06:38 +0000
commitb8e743ada92143d984441ef493767bf4a8a78238 (patch)
tree444187b88dc8a39e66ea1a1c4fe7fbdfd252c150
parentc04a9a418006dfad34f25e644789ce44d6584b78 (diff)
From Jean-Baptiste Marchand: stub dissectors for rras and pnp MSRPC
interfaces. svn path=/trunk/; revision=13129
-rw-r--r--AUTHORS1
-rw-r--r--epan/dissectors/Makefile.common4
-rw-r--r--epan/dissectors/packet-dcerpc-pnp.c209
-rw-r--r--epan/dissectors/packet-dcerpc-pnp.h97
-rw-r--r--epan/dissectors/packet-dcerpc-rras.c167
-rw-r--r--epan/dissectors/packet-dcerpc-rras.h78
6 files changed, 556 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
index 9e3c2e2155..387f9cc548 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1627,6 +1627,7 @@ Jean-Baptiste Marchand <Jean-Baptiste.Marchand [AT] hsc.fr> {
MS Eventlog support
WKSSVC enhancements
File Replication Services (frsrpc and frsapi) support
+ Stub dissectors for rras and pnp MSRPC interfaces
}
Andreas Trauer <andreas.trauer [AT] siemens.com> {
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 51fa5ab4dd..91f48a2b93 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -155,11 +155,13 @@ DISSECTOR_SRC = \
packet-dcerpc-netlogon.c \
packet-dcerpc-nspi.c \
packet-dcerpc-pn-io.c \
+ packet-dcerpc-pnp.c \
packet-dcerpc-rdaclif.c \
packet-dcerpc-reg.c \
packet-dcerpc-rep_proc.c \
packet-dcerpc-roverride.c \
packet-dcerpc-rpriv.c \
+ packet-dcerpc-rras.c \
packet-dcerpc-rs_acct.c \
packet-dcerpc-rs_attr.c \
packet-dcerpc-rs_attr_schema.c \
@@ -606,7 +608,9 @@ DISSECTOR_INCLUDES = \
packet-dcerpc-mapi.h \
packet-dcerpc-netlogon.h \
packet-dcerpc-nt.h \
+ packet-dcerpc-pnp.h \
packet-dcerpc-reg.h \
+ packet-dcerpc-rras.h \
packet-dcerpc-samr.h \
packet-dcerpc-spoolss.h \
packet-dcerpc-srvsvc.h \
diff --git a/epan/dissectors/packet-dcerpc-pnp.c b/epan/dissectors/packet-dcerpc-pnp.c
new file mode 100644
index 0000000000..1c948298ef
--- /dev/null
+++ b/epan/dissectors/packet-dcerpc-pnp.c
@@ -0,0 +1,209 @@
+/* packet-dcerpc-pnp.c
+ * Routines for the pnp (Plug and Play) MSRPC interface
+ * Copyright 2005 Jean-Baptiste Marchand <jbm@hsc.fr>
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-pnp.h"
+
+static int proto_dcerpc_pnp = -1;
+
+static int hf_pnp_opnum = 0;
+
+static gint ett_dcerpc_pnp = -1;
+
+/*
+ * The pnp MSRPC interface is typically reached using the ncacn_np transport
+ * and the \pipe\ntsvcs named pipe as endpoint.
+ */
+
+static e_uuid_t uuid_dcerpc_pnp = {
+ 0x8d9f4e40, 0xa03d, 0x11ce,
+ { 0x8f, 0x69, 0x08, 0x00, 0x3e, 0x30, 0x05, 0x1b }
+};
+
+static guint16 ver_dcerpc_pnp = 1;
+
+
+static dcerpc_sub_dissector dcerpc_pnp_dissectors[] = {
+ { PNP_DISCONNECT, "PNP_Disconnect", NULL, NULL },
+ { PNP_CONNECT, "PNP_Connect", NULL, NULL },
+ { PNP_GET_VERSION, "PNP_GetVersion", NULL, NULL },
+ { PNP_GET_GLOBAL_STATE, "PNP_GetGlobalState", NULL, NULL },
+ { PNP_INIT_DETECTION, "PNP_InitDetection", NULL, NULL },
+ { PNP_REPORT_LOGON, "PNP_ReportLogOn", NULL, NULL },
+ { PNP_VALIDATE_DEVICE_INSTANCE,
+ "PNP_ValidateDeviceInstance", NULL, NULL },
+ { PNP_GET_ROOT_DEVICE_INSTANCE,
+ "PNP_GetRootDeviceInstance", NULL, NULL },
+ { PNP_GET_RELATED_DEVICE_INSTANCE,
+ "PNP_GetRelatedDeviceInstance", NULL, NULL },
+ { PNP_ENUMERATE_SUB_KEYS,
+ "PNP_EnumerateSubKeys", NULL, NULL },
+ { PNP_GET_DEVICE_LIST,
+ "PNP_GetDeviceList", NULL, NULL },
+ { PNP_GET_DEVICE_LIST_SIZE,
+ "PNP_GetDeviceListSize", NULL, NULL },
+ { PNP_GET_DEPTH, "PNP_GetDepth", NULL, NULL },
+ { PNP_GET_DEVICE_REG_PROP,
+ "PNP_GetDeviceRegProp", NULL, NULL },
+ { PNP_SET_DEVICE_REG_PROP,
+ "PNP_SetDeviceRegProp", NULL, NULL },
+ { PNP_GET_CLASS_INSTANCE,
+ "PNP_GetClassInstance", NULL, NULL },
+ { PNP_CREATE_KEY, "PNP_CreateKey", NULL, NULL },
+ { PNP_DELETE_REGISTRY_KEY,
+ "PNP_DeleteRegistryKey", NULL, NULL },
+ { PNP_GET_CLASS_COUNT,
+ "PNP_GetClassCount", NULL, NULL },
+ { PNP_GET_CLASS_NAME,
+ "PNP_GetClassName", NULL, NULL },
+ { PNP_DELETE_CLASS_KEY,
+ "PNP_DeleteClassKey", NULL, NULL },
+ { PNP_GET_INTERFACE_DEVICE_ALIAS,
+ "PNP_GetInterfaceDeviceAlias", NULL, NULL },
+ { PNP_GET_INTERFACE_DEVICE_LIST,
+ "PNP_GetInterfaceDeviceList", NULL, NULL },
+ { PNP_GET_INTERFACE_DEVICE_LIST_SIZE,
+ "PNP_GetInterfaceDeviceListSize", NULL, NULL },
+ { PNP_REGISTER_DEVICE_CLASS_ASSOCIATION,
+ "PNP_RegisterDeviceClassAssociation", NULL, NULL },
+ { PNP_UNREGISTER_DEVICE_CLASS_ASSOCIATION,
+ "PNP_UnregisterDeviceClassAssociation", NULL, NULL },
+ { PNP_GET_CLASS_REG_PROP,
+ "PNP_GetClassRegProp", NULL, NULL },
+ { PNP_SET_CLASS_REG_PROP,
+ "PNP_SetClassRegProp", NULL, NULL },
+ { PNP_CREATE_DEV_INST, "PNP_CreateDevInst", NULL, NULL },
+ { PNP_DEVICE_INSTANCE_ACTION,
+ "PNP_DeviceInstanceAction", NULL, NULL },
+ { PNP_GET_DEVICE_STATUS,
+ "PNP_GetDeviceStatus", NULL, NULL },
+ { PNP_SET_DEVICE_PROBLEM,
+ "PNP_SetDeviceProblem", NULL, NULL },
+ { PNP_DISABLE_DEV_INST,
+ "PNP_DisableDevInst", NULL, NULL },
+ { PNP_UNINSTALL_DEV_INST,
+ "PNP_UninstallDevInst", NULL, NULL },
+ { PNP_ADD_ID, "PNP_AddID", NULL, NULL },
+ { PNP_REGISTER_DRIVER,
+ "PNP_RegisterDriver", NULL, NULL },
+ { PNP_QUERY_REMOVE,
+ "PNP_QueryRemove", NULL, NULL },
+ { PNP_REQUEST_DEVICE_EJECT,
+ "PNP_RequestDeviceEject", NULL, NULL },
+ { PNP_IS_DOCKSTATION_PRESENT,
+ "PNP_IsDockStationPresent", NULL, NULL },
+ { PNP_REQUEST_EJECT_PC,
+ "PNP_RequestEjectPC", NULL, NULL },
+ { PNP_HW_PROT_FLAGS,
+ "PNP_HwProfFlags", NULL, NULL },
+ { PNP_GET_HW_PROT_INFO,
+ "PNP_GetHwProfInfo", NULL, NULL },
+ { PNP_ADD_EMPTY_LOG_CONF,
+ "PNP_AddEmptyLogConf", NULL, NULL },
+ { PNP_FREE_LOG_CONF,
+ "PNP_FreeLogConf", NULL, NULL },
+ { PNP_GET_FIRST_LOG_CONF,
+ "PNP_GetFirstLogConf", NULL, NULL },
+ { PNP_GET_NEXT_LOG_CONF,
+ "PNP_GetNextLogConf", NULL, NULL },
+ { PNP_GET_LOG_CONF_PRIORITY,
+ "PNP_GetLogConfPriority", NULL, NULL },
+ { PNP_ADD_RES_DES, "PNP_AddResDes", NULL, NULL },
+ { PNP_FREE_RES_DES, "PNP_FreeResDes", NULL, NULL },
+ { PNP_GET_NEXT_RES_DES, "PNP_GetNextResDes", NULL, NULL },
+ { PNP_GET_RES_DES_DATA, "PNP_GetResDesData", NULL, NULL },
+ { PNP_GET_RES_DES_DATA_SIZE, "PNP_GetResDesDataSize", NULL, NULL },
+ { PNP_MODIFY_RES_DES, "PNP_ModifyResDes", NULL, NULL },
+ { PNP_DETECT_RESOURCE_CONFLICT,
+ "PNP_DetectResourceConflict", NULL, NULL },
+ { PNP_QUERY_RES_CONFLICT,
+ "PNP_QueryResConfList", NULL, NULL },
+ { PNP_SET_HW_PROF,
+ "PNP_SetHwProf", NULL, NULL },
+ { PNP_QUERY_ARBITRATOR_FREE_DATA,
+ "PNP_QueryArbitratorFreeData", NULL, NULL },
+ { PNP_QUERY_ARBITRATOR_FREE_SIZE,
+ "PNP_QueryArbitratorFreeSize", NULL, NULL },
+ { PNP_RUN_DETECTION,
+ "PNP_RunDetection", NULL, NULL },
+ { PNP_REGISTER_NOTIFICATION,
+ "PNP_RegisterNotification", NULL, NULL },
+ { PNP_UNREGISTER_NOTIFICATION,
+ "PNP_UnregisterNotification", NULL, NULL },
+ { PNP_GET_CUSTOM_DEV_PROP,
+ "PNP_GetCustomDevProp", NULL, NULL },
+ { PNP_GET_VERSION_INTERNAL,
+ "PNP_GetVersionInternal", NULL, NULL },
+ { PNP_GET_BLOCKED_DRIVER_INFO,
+ "PNP_GetBlockedDriverInfo", NULL, NULL },
+ { PNP_GET_SERVER_SIDE_DEV_INSTALL_FLAGS,
+ "PNP_GetServerSideDeviceInstallFlags", NULL, NULL },
+ { 0, NULL, NULL, NULL }
+};
+
+
+void
+proto_register_dcerpc_pnp(void)
+{
+
+ static hf_register_info hf[] = {
+
+ { &hf_pnp_opnum,
+ { "Operation", "pnp.opnum", FT_UINT16, BASE_DEC,
+ NULL, 0x0, "Operation", HFILL }},
+ };
+
+
+ static gint *ett[] = {
+ &ett_dcerpc_pnp,
+ };
+
+
+ proto_dcerpc_pnp = proto_register_protocol(
+ "Microsoft Plug and Play service", "PNP", "pnp");
+
+ proto_register_field_array(proto_dcerpc_pnp, hf, array_length(hf));
+
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+void
+proto_reg_handoff_dcerpc_pnp(void)
+{
+ /* register protocol as dcerpc */
+
+ dcerpc_init_uuid(
+ proto_dcerpc_pnp, ett_dcerpc_pnp, &uuid_dcerpc_pnp,
+ ver_dcerpc_pnp, dcerpc_pnp_dissectors, hf_pnp_opnum);
+}
diff --git a/epan/dissectors/packet-dcerpc-pnp.h b/epan/dissectors/packet-dcerpc-pnp.h
new file mode 100644
index 0000000000..7845ed483f
--- /dev/null
+++ b/epan/dissectors/packet-dcerpc-pnp.h
@@ -0,0 +1,97 @@
+/* packet-dcerpc-pnp.h
+ * Routines for the pnp (Plug and Play) MSRPC interface
+ * Copyright 2005 Jean-Baptiste Marchand <jbm@hsc.fr>
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PACKET_DCERPC_PNP_H
+#define __PACKET_DCERPC_PNP_H
+
+/* MSRPC functions available in the pnp interface */
+
+#define PNP_DISCONNECT 0x00
+#define PNP_CONNECT 0x01
+#define PNP_GET_VERSION 0x02
+#define PNP_GET_GLOBAL_STATE 0x03
+#define PNP_INIT_DETECTION 0x04
+#define PNP_REPORT_LOGON 0x05
+#define PNP_VALIDATE_DEVICE_INSTANCE 0x06
+#define PNP_GET_ROOT_DEVICE_INSTANCE 0x07
+#define PNP_GET_RELATED_DEVICE_INSTANCE 0x08
+#define PNP_ENUMERATE_SUB_KEYS 0x09
+#define PNP_GET_DEVICE_LIST 0x0a
+#define PNP_GET_DEVICE_LIST_SIZE 0x0b
+#define PNP_GET_DEPTH 0x0c
+#define PNP_GET_DEVICE_REG_PROP 0x0d
+#define PNP_SET_DEVICE_REG_PROP 0x0e
+#define PNP_GET_CLASS_INSTANCE 0x0f
+#define PNP_CREATE_KEY 0x10
+#define PNP_DELETE_REGISTRY_KEY 0x11
+#define PNP_GET_CLASS_COUNT 0x12
+#define PNP_GET_CLASS_NAME 0x13
+#define PNP_DELETE_CLASS_KEY 0x14
+#define PNP_GET_INTERFACE_DEVICE_ALIAS 0x15
+#define PNP_GET_INTERFACE_DEVICE_LIST 0x16
+#define PNP_GET_INTERFACE_DEVICE_LIST_SIZE 0x17
+#define PNP_REGISTER_DEVICE_CLASS_ASSOCIATION 0x18
+#define PNP_UNREGISTER_DEVICE_CLASS_ASSOCIATION 0x19
+#define PNP_GET_CLASS_REG_PROP 0x1a
+#define PNP_SET_CLASS_REG_PROP 0x1b
+#define PNP_CREATE_DEV_INST 0x1c
+#define PNP_DEVICE_INSTANCE_ACTION 0x1d
+#define PNP_GET_DEVICE_STATUS 0x1e
+#define PNP_SET_DEVICE_PROBLEM 0x1f
+#define PNP_DISABLE_DEV_INST 0x20
+#define PNP_UNINSTALL_DEV_INST 0x21
+#define PNP_ADD_ID 0x22
+#define PNP_REGISTER_DRIVER 0x23
+#define PNP_QUERY_REMOVE 0x24
+#define PNP_REQUEST_DEVICE_EJECT 0x25
+#define PNP_IS_DOCKSTATION_PRESENT 0x26
+#define PNP_REQUEST_EJECT_PC 0x27
+#define PNP_HW_PROT_FLAGS 0x28
+#define PNP_GET_HW_PROT_INFO 0x29
+#define PNP_ADD_EMPTY_LOG_CONF 0x2a
+#define PNP_FREE_LOG_CONF 0x2b
+#define PNP_GET_FIRST_LOG_CONF 0x2c
+#define PNP_GET_NEXT_LOG_CONF 0x2d
+#define PNP_GET_LOG_CONF_PRIORITY 0x2e
+#define PNP_ADD_RES_DES 0x2f
+#define PNP_FREE_RES_DES 0x30
+#define PNP_GET_NEXT_RES_DES 0x31
+#define PNP_GET_RES_DES_DATA 0x32
+#define PNP_GET_RES_DES_DATA_SIZE 0x33
+#define PNP_MODIFY_RES_DES 0x34
+#define PNP_DETECT_RESOURCE_CONFLICT 0x35
+#define PNP_QUERY_RES_CONFLICT 0x36
+#define PNP_SET_HW_PROF 0x37
+#define PNP_QUERY_ARBITRATOR_FREE_DATA 0x38
+#define PNP_QUERY_ARBITRATOR_FREE_SIZE 0x39
+#define PNP_RUN_DETECTION 0x3a
+#define PNP_REGISTER_NOTIFICATION 0x3b
+#define PNP_UNREGISTER_NOTIFICATION 0x3c
+#define PNP_GET_CUSTOM_DEV_PROP 0x3d
+#define PNP_GET_VERSION_INTERNAL 0x3e
+#define PNP_GET_BLOCKED_DRIVER_INFO 0x3f
+#define PNP_GET_SERVER_SIDE_DEV_INSTALL_FLAGS 0x40
+
+#endif /* packet-dcerpc-pnp.h */
diff --git a/epan/dissectors/packet-dcerpc-rras.c b/epan/dissectors/packet-dcerpc-rras.c
new file mode 100644
index 0000000000..19db413ba2
--- /dev/null
+++ b/epan/dissectors/packet-dcerpc-rras.c
@@ -0,0 +1,167 @@
+/* packet-dcerpc-rras.c
+ * Routines for the rras (Routing and Remote Access service) MSRPC interface
+ * Copyright 2005 Jean-Baptiste Marchand <jbm@hsc.fr>
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-rras.h"
+
+static int proto_dcerpc_rras = -1;
+
+static int hf_rras_opnum = 0;
+
+static gint ett_dcerpc_rras = -1;
+
+/*
+ * The rras MSRPC interface is typically reached using the ncacn_np transport
+ * and the \pipe\ROUTER named pipe as endpoint.
+ */
+
+static e_uuid_t uuid_dcerpc_rras = {
+ 0x8f09f000, 0xb7ed, 0x11ce,
+ { 0xbb, 0xd2, 0x00, 0x00, 0x1a, 0x18, 0x1c, 0xad }
+};
+
+static guint16 ver_dcerpc_rras = 0;
+
+
+static dcerpc_sub_dissector dcerpc_rras_dissectors[] = {
+ { RRAS_ADMIN_SERVER_GETINFO,
+ "MprAdminServerGetInfo", NULL, NULL },
+ { RRAS_ADMIN_CONNECTION_ENUM,
+ "RasAdminConnectionEnum", NULL, NULL },
+ { RRAS_ADMIN_CONNECTION_GETINFO,
+ "RasAdminConnectionGetInfo", NULL, NULL },
+ { RRAS_ADMIN_CONNECTION_CLEARSTATS,
+ "RasAdminConnectionClearStats", NULL, NULL },
+ { RRAS_ADMIN_PORT_ENUM,
+ "RasAdminPortEnum", NULL, NULL },
+ { RRAS_ADMIN_PORT_GETINFO,
+ "RasAdminPortGetInfo", NULL, NULL },
+ { RRAS_ADMIN_PORT_CLEARSTATS,
+ "RasAdminPortClearStats", NULL, NULL },
+ { RRAS_ADMIN_PORT_RESET,
+ "RasAdminPortReset", NULL, NULL },
+ { RRAS_ADMIN_PORT_DISCONNECT,
+ "RasAdminPortDisconnect", NULL, NULL },
+ { RRAS_RI_TRANS_SET_GLOBALINFO,
+ "RouterInterfaceTransportSetGlobalInfo", NULL, NULL },
+ { RRAS_RI_TRANS_GET_GLOBALINFO,
+ "RouterInterfaceTransportGetGlobalInfo", NULL, NULL },
+ { RRAS_RI_GET_HANDLE,
+ "RouterInterfaceGetHandle", NULL, NULL },
+ { RRAS_RI_CREATE,
+ "RouterInterfaceCreate", NULL, NULL },
+ { RRAS_RI_GETINFO,
+ "RouterInterfaceGetInfo", NULL, NULL },
+ { RRAS_RI_SETINFO,
+ "RouterInterfaceSetInfo", NULL, NULL },
+ { RRAS_RI_DELETE,
+ "RouterInterfaceDelete", NULL, NULL },
+ { RRAS_TRANS_REMOVE,
+ "RouterInterfaceTransportRemove", NULL, NULL },
+ { RRAS_TRANS_ADD,
+ "RouterInterfaceTransportAdd", NULL, NULL },
+ { RRAS_TRANS_GETINFO,
+ "RouterInterfaceTransportGetInfo", NULL, NULL },
+ { RRAS_TRANS_SETINFO,
+ "RouterInterfaceTransportSetInfo", NULL, NULL },
+ { RRAS_RI_ENUM,
+ "RouterInterfaceEnum", NULL, NULL },
+ { RRAS_RI_CONNECT,
+ "RouterInterfaceConnect", NULL, NULL },
+ { RRAS_RI_DISCONNECT,
+ "RouterInterfaceDisconnect", NULL, NULL },
+ { RRAS_RI_UPDATE_ROUTES,
+ "RouterInterfaceUpdateRoutes", NULL, NULL },
+ { RRAS_RI_QUERY_UPDATE_RESULT,
+ "RouterInterfaceQueryUpdateResult", NULL, NULL },
+ { RRAS_RI_UPDATE_PB_INFO,
+ "RouterInterfaceUpdatePhonebookInfo", NULL, NULL },
+ { RRAS_MIB_ENTRY_CREATE, "MIBEntryCreate", NULL, NULL },
+ { RRAS_MIB_ENTRY_DELETE, "MIBEntryDelete", NULL, NULL },
+ { RRAS_MIB_ENTRY_SET, "MIBEntrySet", NULL, NULL },
+ { RRAS_MIB_ENTRY_GET, "MIBEntryGet", NULL, NULL },
+ { RRAS_MIB_GET_FIRST, "MIBEntryGetFirst", NULL, NULL },
+ { RRAS_MIB_GET_NEXT, "MIBEntryGetNext", NULL, NULL },
+ { RRAS_GET_TRAP_INFO, "MIBGetTrapInfo", NULL, NULL },
+ { RRAS_SET_TRAP_INFO, "MIBSetTrapInfo", NULL, NULL },
+ { RRAS_ADMIN_CONNECTION_NOTIFICATION,
+ "RasAdminConnectionNotification", NULL, NULL },
+ { RRAS_ADMIN_SEND_USER_MSG, "RasAdminSendUserMessage", NULL, NULL },
+ { RRAS_ROUTER_DEVICE_ENUM, "RouterDeviceEnum", NULL, NULL },
+ { RRAS_RI_TRANSPORT_CREATE,
+ "RouterInterfaceTransportCreate", NULL, NULL },
+ { RRAS_RI_DEV_GETINFO, "RouterInterfaceDeviceGetInfo", NULL, NULL },
+ { RRAS_RI_DEV_SETINFO, "RouterInterfaceDeviceSetInfo", NULL, NULL },
+ { RRAS_RI_SET_CRED_EX, "RouterInterfaceSetCredentialsEx", NULL, NULL },
+ { RRAS_RI_GET_CRED_EX, "RouterInterfaceGetCredentialsEx", NULL, NULL },
+ { RRAS_ADMIN_CONNECTION_REM_QUARANT,
+ "RasAdminConnectionRemoveQuarantine", NULL, NULL },
+ { 0, NULL, NULL, NULL }
+};
+
+
+void
+proto_register_dcerpc_rras(void)
+{
+
+ static hf_register_info hf[] = {
+
+ { &hf_rras_opnum,
+ { "Operation", "rras.opnum", FT_UINT16, BASE_DEC,
+ NULL, 0x0, "Operation", HFILL }},
+ };
+
+
+ static gint *ett[] = {
+ &ett_dcerpc_rras,
+ };
+
+
+ proto_dcerpc_rras = proto_register_protocol(
+ "Microsoft Routing and Remote Access Service", "RRAS", "rras");
+
+ proto_register_field_array(proto_dcerpc_rras, hf, array_length(hf));
+
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+void
+proto_reg_handoff_dcerpc_rras(void)
+{
+ /* register protocol as dcerpc */
+
+ dcerpc_init_uuid(
+ proto_dcerpc_rras, ett_dcerpc_rras, &uuid_dcerpc_rras,
+ ver_dcerpc_rras, dcerpc_rras_dissectors, hf_rras_opnum);
+}
diff --git a/epan/dissectors/packet-dcerpc-rras.h b/epan/dissectors/packet-dcerpc-rras.h
new file mode 100644
index 0000000000..649adc2369
--- /dev/null
+++ b/epan/dissectors/packet-dcerpc-rras.h
@@ -0,0 +1,78 @@
+/* packet-dcerpc-rras.h
+ * Routines for the rras (Routing and Remote Access service) MSRPC interface
+ * Copyright 2005 Jean-Baptiste Marchand <jbm@hsc.fr>
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PACKET_DCERPC_RRAS_H
+#define __PACKET_DCERPC_RRAS_H
+
+/* MSRPC functions available in the rras interface */
+
+#define RRAS_ADMIN_SERVER_GETINFO 0x00
+#define RRAS_ADMIN_CONNECTION_ENUM 0x01
+#define RRAS_ADMIN_CONNECTION_GETINFO 0x02
+#define RRAS_ADMIN_CONNECTION_CLEARSTATS 0x03
+#define RRAS_ADMIN_PORT_ENUM 0x04
+#define RRAS_ADMIN_PORT_GETINFO 0x05
+#define RRAS_ADMIN_PORT_CLEARSTATS 0x06
+#define RRAS_ADMIN_PORT_RESET 0x07
+#define RRAS_ADMIN_PORT_DISCONNECT 0x08
+#define RRAS_RI_TRANS_SET_GLOBALINFO 0x09
+#define RRAS_RI_TRANS_GET_GLOBALINFO 0x0a
+#define RRAS_RI_GET_HANDLE 0x0b
+#define RRAS_RI_CREATE 0x0c
+#define RRAS_RI_GETINFO 0x0d
+#define RRAS_RI_SETINFO 0x0e
+#define RRAS_RI_DELETE 0x0f
+#define RRAS_TRANS_REMOVE 0x10
+#define RRAS_TRANS_ADD 0x11
+#define RRAS_TRANS_GETINFO 0x12
+#define RRAS_TRANS_SETINFO 0x13
+#define RRAS_RI_ENUM 0x14
+#define RRAS_RI_CONNECT 0x15
+#define RRAS_RI_DISCONNECT 0x16
+#define RRAS_RI_UPDATE_ROUTES 0x17
+#define RRAS_RI_QUERY_UPDATE_RESULT 0x18
+#define RRAS_RI_UPDATE_PB_INFO 0x19
+#define RRAS_MIB_ENTRY_CREATE 0x1a
+#define RRAS_MIB_ENTRY_DELETE 0x1b
+#define RRAS_MIB_ENTRY_SET 0x1c
+#define RRAS_MIB_ENTRY_GET 0x1d
+#define RRAS_MIB_GET_FIRST 0x1e
+#define RRAS_MIB_GET_NEXT 0x1f
+#define RRAS_GET_TRAP_INFO 0x20
+#define RRAS_SET_TRAP_INFO 0x21
+#define RRAS_ADMIN_CONNECTION_NOTIFICATION 0x22
+#define RRAS_ADMIN_SEND_USER_MSG 0x23
+#define RRAS_ROUTER_DEVICE_ENUM 0x24
+#define RRAS_RI_TRANSPORT_CREATE 0x25
+#define RRAS_RI_DEV_GETINFO 0x26
+#define RRAS_RI_DEV_SETINFO 0x27
+#define RRAS_RI_SET_CRED_EX 0x28
+#define RRAS_RI_GET_CRED_EX 0x29
+#define RRAS_ADMIN_CONNECTION_REM_QUARANT 0x2a
+
+#endif /* packet-dcerpc-rras.h */
+
+
+