Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

105 lines
3.4 KiB

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
qos.c
Abstract:
IP QOS Command dispatcher.
Revision History:
--*/
#include "precomp.h"
#pragma hdrstop
//
// Declare and Init Global Variables for QOS Extension
//
#ifdef ALLOW_CHILD_HELPERS
PIP_CONTEXT_TABLE_ENTRY g_QosContextTable = NULL;
DWORD g_dwNumQosContexts = 0;
#endif
//
// The table of Add, Delete, Set, Show Commands for QOS
//
//
// The commands are prefix-matched with the command-line, in sequential
// order. So a command like 'ADD INTERFACE FLOW' must come before
// the command 'ADD INTERFACE' in the table.
//
CMD_ENTRY g_QosAddCmdTable[] = {
/* CREATE_CMD_ENTRY(QOS_ADD_FILTER_TO_FLOW, HandleQosAttachFilterToFlow),*/
CREATE_CMD_ENTRY(QOS_ADD_QOSOBJECT_ON_FLOW, HandleQosAddQosObjectOnIfFlow),
CREATE_CMD_ENTRY(QOS_ADD_FLOWSPEC_ON_FLOW, HandleQosAddFlowspecOnIfFlow),
CREATE_CMD_ENTRY(QOS_ADD_FLOW_ON_IF, HandleQosAddFlowOnIf),
CREATE_CMD_ENTRY(QOS_ADD_IF, HandleQosAddIf),
CREATE_CMD_ENTRY(QOS_ADD_DSRULE, HandleQosAddDsRule),
CREATE_CMD_ENTRY(QOS_ADD_SDMODE, HandleQosAddSdMode),
CREATE_CMD_ENTRY(QOS_ADD_FLOWSPEC, HandleQosAddFlowspec),
#ifdef ALLOW_CHILD_HELPERS
CREATE_CMD_ENTRY(ADD_HELPER, HandleQosAddHelper),
#endif
};
CMD_ENTRY g_QosDelCmdTable[] = {
/* CREATE_CMD_ENTRY(QOS_DEL_FILTER_FROM_FLOW, HandleQosDetachFilterFromFlow),*/
CREATE_CMD_ENTRY(QOS_DEL_QOSOBJECT_ON_FLOW, HandleQosDelQosObjectOnIfFlow),
CREATE_CMD_ENTRY(QOS_DEL_FLOWSPEC_ON_FLOW, HandleQosDelFlowspecOnIfFlow),
CREATE_CMD_ENTRY(QOS_DEL_FLOW_ON_IF, HandleQosDelFlowOnIf),
CREATE_CMD_ENTRY(QOS_DEL_IF, HandleQosDelIf),
CREATE_CMD_ENTRY(QOS_DEL_DSRULE, HandleQosDelDsRule),
CREATE_CMD_ENTRY(QOS_DEL_SDMODE, HandleQosDelQosObject),
CREATE_CMD_ENTRY(QOS_DEL_QOSOBJECT, HandleQosDelQosObject),
CREATE_CMD_ENTRY(QOS_DEL_FLOWSPEC, HandleQosDelFlowspec),
#ifdef ALLOW_CHILD_HELPERS
CREATE_CMD_ENTRY(DEL_HELPER, HandleQosDelHelper),
#endif
};
CMD_ENTRY g_QosSetCmdTable[] = {
/* CREATE_CMD_ENTRY(QOS_SET_FILTER_ON_FLOW, HandleQosModifyFilterOnFlow),*/
/* CREATE_CMD_ENTRY(QOS_SET_IF, HandleQosSetIf), */
CREATE_CMD_ENTRY(QOS_SET_GLOBAL, HandleQosSetGlobal)
};
CMD_ENTRY g_QosShowCmdTable[] = {
/* CREATE_CMD_ENTRY(QOS_SHOW_FILTER_ON_FLOW, HandleQosShowFilterOnFlow),*/
CREATE_CMD_ENTRY(QOS_SHOW_FLOW_ON_IF, HandleQosShowFlowOnIf),
CREATE_CMD_ENTRY(QOS_SHOW_IF, HandleQosShowIf),
CREATE_CMD_ENTRY(QOS_SHOW_DSMAP, HandleQosShowDsMap),
CREATE_CMD_ENTRY(QOS_SHOW_SDMODE, HandleQosShowSdMode),
CREATE_CMD_ENTRY(QOS_SHOW_QOSOBJECT, HandleQosShowQosObject),
CREATE_CMD_ENTRY(QOS_SHOW_FLOWSPEC, HandleQosShowFlowspec),
CREATE_CMD_ENTRY(QOS_SHOW_GLOBAL, HandleQosShowGlobal),
#ifdef ALLOW_CHILD_HELPERS
CREATE_CMD_ENTRY(SHOW_HELPER, HandleQosShowHelper),
#endif
};
CMD_GROUP_ENTRY g_QosCmdGroups[] =
{
CREATE_CMD_GROUP_ENTRY(GROUP_ADD, g_QosAddCmdTable),
CREATE_CMD_GROUP_ENTRY(GROUP_DELETE, g_QosDelCmdTable),
CREATE_CMD_GROUP_ENTRY(GROUP_SET, g_QosSetCmdTable),
CREATE_CMD_GROUP_ENTRY(GROUP_SHOW, g_QosShowCmdTable),
};
ULONG g_ulQosNumGroups = sizeof(g_QosCmdGroups)/sizeof(CMD_GROUP_ENTRY);
CMD_ENTRY g_QosCmds[] =
{
CREATE_CMD_ENTRY(INSTALL, HandleQosInstall),
CREATE_CMD_ENTRY(UNINSTALL, HandleQosUninstall),
};
ULONG g_ulQosNumTopCmds = sizeof(g_QosCmds)/sizeof(CMD_ENTRY);