3#include "CLIInterface.h"
5#pragma comment(lib,"NetworkStack.lib")
10#define DEFAULT_PROMPT "NetSim"
12#define CMD_CHANGEPROMPT "CHANGEPROMPT"
13#define CMD_STOP "STOP"
14#define CMD_CONTINUE "CONTINUE"
15#define CMD_PAUSE "PAUSE"
16#define CMD_PAUSEAT "PAUSEAT"
17#define CMD_EXIT "EXIT"
18#define CMD_ACLCONFIG "ACLCONFIG"
20void free_commandArray(ptrCOMMANDARRAY c);
22typedef enum enum_clientType
40}HEADINGINFO,*ptrHEADINGINFO;
48}FILECLIENTINFO, *ptrFILECLIENTINFO;
55 HANDLE clientRecvHandle;
61}SOCKCLIENTINFO, *ptrSOCKCLIENTINFO;
67}STRINGCLIENTINFO, *ptrSTRINGCLIENTINFO;
71 CLIENTTYPE clientType;
74 SOCKCLIENTINFO sockClient;
75 FILECLIENTINFO fileClient;
76 STRINGCLIENTINFO stringClient;
85 bool(*multResp)(
void*,
char*, int, bool);
88}CLIENTINFO, *ptrCLIENTINFO;
92 ptrCOMMANDARRAY cmdArray;
93 ptrCLIENTINFO clientInfo;
95#define CLIHANDLE ptrCLIHANDLE
97void* add_new_socket_client(SOCKET s,
char* name);
99void process_command(ptrCLIENTINFO clientInfo,
char* command,
int len);
100void send_to_socket(ptrCLIENTINFO info,
char* buf,
int len);
101void write_to_file(ptrCLIENTINFO info,
char* msg,
int len);
104void send_message(ptrCLIENTINFO info,
char* msg, ...);
107void cli_stop_simulation(ptrCLIENTINFO info);
108void cli_pause_simulation(ptrCLIENTINFO info);
109void cli_continue_simulation(ptrCLIENTINFO info);
110void cli_pause_simulation_at(ptrCLIENTINFO info,
double time);
113bool validate_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command);
114void cli_clear_prompt(ptrCLIENTINFO info);
115void execute_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, NETSIM_ID d);
116void pass_to_SDNModule(ptrCLIENTINFO info, ptrCOMMANDARRAY command);
119bool validate_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index);
120void execute_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index, NETSIM_ID d);
123bool validate_acl_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index);
124void execute_acl_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index, NETSIM_ID d);
125void execute_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index, NETSIM_ID d);
126bool validate_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index);
127void execute_prompt_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index, NETSIM_ID d);
130bool validate_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index);
131void execute_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command,
int index, NETSIM_ID d);
134CLIHANDLE FORM_CLI_HANDLE(ptrCOMMANDARRAY cmd,
137int fn_NetSim_CLI_HandleTimerEvent();
139ptrCOMMANDARRAY get_commandArray(
char *text);
140bool isCommandAsDeviceName(
char* name);
143void set_fileClientInfo(ptrCLIENTINFO info);
144ptrCLIENTINFO get_fileClientInfo();
145void read_file_and_execute(FILE* fp);
148void add_to_string(ptrCLIENTINFO info,
char* sendMsg,
int len);