14#ifndef _NETSIM_PROTOCOL_H_
15#define _NETSIM_PROTOCOL_H_
19# define MAX_NAME_CHAR 100
20# define MAX_CONTROL_PACKET 100
67 char dllName[MAX_NAME_CHAR];
68 char protocolName[MAX_NAME_CHAR];
71 char pszControlPacketName[MAX_CONTROL_PACKET][MAX_NAME_CHAR];
75_declspec(dllimport) UINT nProtocolCount;
77#ifndef _NETSIM_PROTOCOL_INTERFACE_CODE_
79extern UINT nProtocolCount;
81_declspec(dllexport) UINT nProtocolCount;
85HINSTANCE* hProtocolDll;
91typedef int (*protocol_run)();
92protocol_run* fnpProtocol_Run;
95protocol_init* fnpProtocol_Init;
97typedef char* (*protocol_trace)(int);
98protocol_trace* fnpProtocol_Trace;
100typedef int (*protocol_CopyPacket)(
const NetSim_PACKET* pstruDestPacket,
const NetSim_PACKET* pstruSrcPacket);
101protocol_CopyPacket* fnpProtocol_CopyPacket;
103typedef int (*protocol_FreePacket)(
const NetSim_PACKET* pstruPacket);
104protocol_FreePacket* fnpProtocol_FreePacket;
106typedef int (*protocol_Metrics)(
const char* szMetricsFile);
107protocol_Metrics* fnpProtocol_Metrics;
109typedef int (*protocol_Finish)();
110protocol_Finish* fnpProtocol_Finish;
112typedef int (*protocol_Configure)(
void**);
113protocol_Configure* fnpProtocol_Configure;
115typedef char* (*protocol_ConfigPacketTrace)(
const void* xmlNetSimNode);
116protocol_ConfigPacketTrace* fnpProtocol_ConfigPacketTrace;
118typedef int (*protocol_WritePacketTrace)(
const NetSim_PACKET*,
char**);
119protocol_WritePacketTrace* fnpProtocol_WritePacketTrace;
121_declspec(dllexport)
int fnCallProtocol(
int nProtocol);
122_declspec(dllexport)
int fn_NetSim_LoadProtocolDll(
int nId,
const char* name,
const char* dllName);
123_declspec(dllexport)
void fn_NetSim_Stack_EnableProtocolDll(
const char* protocolName);