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
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);
|