NetSim Source Code Help
Loading...
Searching...
No Matches
CLI.h
Go to the documentation of this file.
1#pragma once
2
3#include "CLIInterface.h"
4
5#pragma comment(lib,"NetworkStack.lib")
6#ifndef NETSIM_ID
7#define NETSIM_ID UINT
8#endif
9
10#define DEFAULT_PROMPT "NetSim"
11//Default command list
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"
19
21
22typedef enum enum_clientType
23{
29
30typedef enum
31{
35}HT;
36typedef struct stru_headingInfo
37{
38 char* name;
41
42typedef struct stru_fileClientInfo
43{
44 char* inputFile;
49
50typedef struct stru_sockClientInfo
51{
53
54 //Receive Thread info
57
58 //Sync variable
59 bool iswait;
62
64{
65 char* buffer;
68
69typedef struct stru_clientInfo
70{
72 union client
73 {
78
81
83
85 bool(*multResp)(void*, char*, int, bool);
89
90typedef struct str_cli_handle
91{
95#define CLIHANDLE ptrCLIHANDLE
96
97void* add_new_socket_client(SOCKET s, char* name);
98
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);
102
103//
104void send_message(ptrCLIENTINFO info, char* msg, ...);
105
106//Simulation process
110void cli_pause_simulation_at(ptrCLIENTINFO info, double time);
111
112//Command
117
118// Route Command
119bool validate_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index);
120void execute_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d);
121
122//ACL Command
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);
128
129//Ping command
130bool validate_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index);
131void execute_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d);
132
133//CLI Handle
135 ptrCLIENTINFO info);
136
138
140bool isCommandAsDeviceName(char* name);
141
142//File Client
145void read_file_and_execute(FILE* fp);
146
147//String client
148void add_to_string(ptrCLIENTINFO info, char* sendMsg, int len);
unsigned int NETSIM_ID
Definition: Animation.h:45
void execute_acl_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d)
Definition: ACLCommand.c:35
void cli_continue_simulation(ptrCLIENTINFO info)
void cli_pause_simulation_at(ptrCLIENTINFO info, double time)
struct stru_sockClientInfo * ptrSOCKCLIENTINFO
int fn_NetSim_CLI_HandleTimerEvent()
ptrCOMMANDARRAY get_commandArray(char *text)
Definition: Command.c:13
void write_to_file(ptrCLIENTINFO info, char *msg, int len)
Definition: FileInput.c:93
void execute_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d)
Definition: Ping.c:64
void read_file_and_execute(FILE *fp)
Definition: FileInput.c:31
void set_fileClientInfo(ptrCLIENTINFO info)
Definition: FileInput.c:21
struct stru_headingInfo HEADINGINFO
bool validate_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index)
Definition: ACLCommand.c:95
bool validate_ping_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index)
Definition: Ping.c:21
CLIHANDLE FORM_CLI_HANDLE(ptrCOMMANDARRAY cmd, ptrCLIENTINFO info)
void cli_clear_prompt(ptrCLIENTINFO info)
ptrCLIENTINFO get_fileClientInfo()
Definition: FileInput.c:26
void execute_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, NETSIM_ID d)
struct stru_headingInfo * ptrHEADINGINFO
struct stru_fileClientInfo FILECLIENTINFO
void cli_pause_simulation(ptrCLIENTINFO info)
struct stru_fileClientInfo * ptrFILECLIENTINFO
struct stru_sockClientInfo SOCKCLIENTINFO
bool validate_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index)
Definition: RouteCommand.c:35
bool isCommandAsDeviceName(char *name)
struct str_cli_handle * ptrCLIHANDLE
void process_command(ptrCLIENTINFO clientInfo, char *command, int len)
struct stru_clientInfo CLIENTINFO
struct stru_clientInfo * ptrCLIENTINFO
void execute_route_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d)
Definition: RouteCommand.c:150
void cli_stop_simulation(ptrCLIENTINFO info)
enum_clientType
Definition: CLI.h:23
@ CLIENTTYPE_NONE
Definition: CLI.h:24
@ CLIENTTYPE_SOCKET
Definition: CLI.h:26
@ CLIENTTYPE_FILE
Definition: CLI.h:25
@ CLIENTTYPE_STRING
Definition: CLI.h:27
bool validate_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command)
void send_message(ptrCLIENTINFO info, char *msg,...)
void send_to_socket(ptrCLIENTINFO info, char *buf, int len)
Definition: Socket.c:22
void free_commandArray(ptrCOMMANDARRAY c)
Definition: Command.c:61
void execute_prompt_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d)
Definition: ACLCommand.c:139
struct stru_stringClientInfo * ptrSTRINGCLIENTINFO
void * add_new_socket_client(SOCKET s, char *name)
HT
Definition: CLI.h:31
@ HT_NONE
Definition: CLI.h:32
@ HT_DEVICE
Definition: CLI.h:33
@ HT_CMD
Definition: CLI.h:34
enum enum_clientType CLIENTTYPE
void pass_to_SDNModule(ptrCLIENTINFO info, ptrCOMMANDARRAY command)
void execute_aclconfig_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index, NETSIM_ID d)
Definition: ACLCommand.c:59
void add_to_string(ptrCLIENTINFO info, char *sendMsg, int len)
struct stru_stringClientInfo STRINGCLIENTINFO
bool validate_acl_command(ptrCLIENTINFO info, ptrCOMMANDARRAY command, int index)
Definition: ACLCommand.c:49
void * CLIHANDLE
Definition: CLIInterface.h:64
#define c
#define UINT
Definition: Linux.h:38
#define DWORD
Definition: Linux.h:79
#define HANDLE
Definition: Linux.h:73
ptrCOMMANDARRAY cmdArray
Definition: CLI.h:92
ptrCLIENTINFO clientInfo
Definition: CLI.h:93
CLIENTTYPE clientType
Definition: CLI.h:71
union stru_clientInfo::client CLIENT
char * deviceName
Definition: CLI.h:80
char * promptString
Definition: CLI.h:82
NETSIM_ID deviceId
Definition: CLI.h:79
bool(* multResp)(void *, char *, int, bool)
Definition: CLI.h:85
struct stru_clientInfo * next
Definition: CLI.h:87
void * multRespArg
Definition: CLI.h:86
bool isMultResp
Definition: CLI.h:84
char * inputFile
Definition: CLI.h:44
char * outputFile
Definition: CLI.h:46
FILE * fpInputFile
Definition: CLI.h:45
FILE * fpOutputFile
Definition: CLI.h:47
char * name
Definition: CLI.h:38
HT headingType
Definition: CLI.h:39
bool dontUseMe
Definition: CLI.h:60
HANDLE clientRecvHandle
Definition: CLI.h:55
DWORD clientRecvId
Definition: CLI.h:56
SOCKET clientSocket
Definition: CLI.h:52
char * buffer
Definition: CLI.h:65
SOCKCLIENTINFO sockClient
Definition: CLI.h:74
STRINGCLIENTINFO stringClient
Definition: CLI.h:76
FILECLIENTINFO fileClient
Definition: CLI.h:75