38 #include "ace/SOCK_Dgram.h"
47 #include "EoMotionControl.h"
48 #include "eODeb_eoProtoParser.h"
49 #include "eOtheEthLowLevelParser.h"
74 #define MAX_ACQUISITION 1000000000L
94 static void s_process_packet(u_char *args,
const struct pcap_pkthdr *header,
const u_char *packet);
113 char filter_exp[260];
115 bool filterOnSrc =
false;
117 bool filterOnDst =
false;
120 char default_filter_exp[60];
124 struct pcap_pkthdr header;
125 const u_char *packet;
129 sprintf(dev,
"eth1");
130 sprintf(filter_exp,
"src host 10.0.1.104");
136 for(uint8_t i = 0; i<
argc; i++)
138 if(strcmp(
"--help", argv[i]) == 0)
144 if(strcmp(
"--dev", argv[i]) == 0)
148 sprintf(dev,
"%s", argv[++i]);
153 if(strcmp(
"--filterSrcAddr", argv[i]) == 0)
158 sprintf(filtersrc,
"%s", argv[++i]);
164 if(strcmp(
"--filterDstAddr", argv[i]) == 0)
169 sprintf(filterdst,
"%s", argv[++i]);
174 if(strcmp(
"--maxacquisition", argv[i]) == 0)
178 maxacquisition = atoll(argv[++i]);
186 file = fopen(
"test.txt",
"a+");
189 printf(
"cannot open file \n");
195 if((filterOnSrc) &&(filterOnDst))
197 sprintf(filter_exp,
"src host %s and dst host %s", filtersrc, filterdst);
202 sprintf(filter_exp,
"src host %s ", filtersrc);
207 sprintf(filter_exp,
"dst host %s", filterdst);
210 sprintf(default_filter_exp,
" and not port 4444");
211 strcat(filter_exp, default_filter_exp);
213 printf(
"Debug-tool: Ethernet Low Level Praser start on interface %s\n", dev);
214 printf(
"\t\t Used filter: %s\n", filter_exp);
251 printf(
"error in inti libpacap\n");
266 printf(
"\nCapture complete.\n");
290 static void s_process_packet(u_char *args,
const struct pcap_pkthdr *header,
const u_char *packet)
296 eOethLowLevParser_packetInfo_t pktInfo;
299 res = eOTheEthLowLevParser_GetUDPdatagramPayload(eo_ethLowLevParser_GetHandle(), (uint8_t*)packet, &pktInfo);
304 eODeb_eoProtoParser_RopFrameDissect(eODeb_eoProtoParser_GetHandle(), &pktInfo);
455 const eOethLowLevParser_cfg_t ethLowLevParserCfg = {0};
456 eo_ethLowLevParser_Initialise(ðLowLevParserCfg);
462 printf(
"option --help: print this help\n");
463 printf(
"option --dev: specify device where start to capture (default eth1)\n");
464 printf(
"option --filterSrcAddr: application will capture packet with source address specified here. Not mandatory\n");
465 printf(
"option --filterDstAddr: application will capture packet with dest address specified here. Not mandatory\n");
466 printf(
"option --maxacquisition: max num of captured packets. Not mandatory\n");
int main(int argc, char *argv[])
static void s_ethLowLevelPraser_configure(void)
static void s_process_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
static void print_help(void)
const eODeb_eoProtoParser_cfg_t * deb_eoParserCfg_ptr
uint8_t wrapperPcap_loop(int32_t cnt, pcap_handler callback, uint8_t *user)
void wrapperPcap_close(void)
uint8_t wrapperPcap_init(char *dev, char *filter_expr)