Changeset e9f9ab3 for lib/format_rt.c
- Timestamp:
- 02/16/06 10:10:21 (16 years ago)
- Branches:
- 4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
- Children:
- 6561682
- Parents:
- 643105b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/format_rt.c
r49babe0 re9f9ab3 240 240 } 241 241 242 243 static int rt_set_format(struct libtrace_t *libtrace, 244 struct libtrace_packet_t *packet, uint16_t format) { 245 switch (format) { 246 case RT_FORMAT_ERF: 247 if (!RT_INFO->dummy_erf) { 248 RT_INFO->dummy_erf = trace_create_dead("erf:-"); 249 } 250 packet->trace = RT_INFO->dummy_erf; 251 break; 252 case RT_FORMAT_PCAP: 253 if (!RT_INFO->dummy_pcap) { 254 RT_INFO->dummy_pcap = trace_create_dead("pcap:-"); 255 } 256 packet->trace = RT_INFO->dummy_pcap; 257 break; 258 case RT_FORMAT_WAG: 259 if (!RT_INFO->dummy_wag) { 260 RT_INFO->dummy_wag = trace_create_dead("wtf:-"); 261 } 262 packet->trace = RT_INFO->dummy_wag; 263 break; 264 default: 265 printf("Unrecognised format: %d\n", format); 266 return -1; 267 } 268 return 1; 269 } 270 271 static void rt_set_payload(struct libtrace_packet_t *packet, uint16_t format) { 272 dag_record_t *erfptr; 273 274 switch (format) { 275 case RT_FORMAT_ERF: 276 erfptr = (dag_record_t *)packet->header; 277 278 if (erfptr->flags.rxerror == 1) { 279 packet->payload = NULL; 280 } else { 281 packet->payload = (char *)packet->buffer 282 + trace_get_framing_length(packet); 283 } 284 break; 285 default: 286 packet->payload = (char *)packet->buffer + 287 trace_get_framing_length(packet); 288 break; 289 } 290 } 291 242 292 static int rt_read_packet(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) { 243 293 … … 249 299 char msg_buf[RP_BUFSIZE]; 250 300 251 dag_record_t *erfptr;252 301 253 302 void *buffer = 0; … … 303 352 } 304 353 // set packet->trace 305 switch (format) { 306 case RT_FORMAT_ERF: 307 if (!RT_INFO->dummy_erf) { 308 RT_INFO->dummy_erf = trace_create_dead("erf:-"); 309 } 310 packet->trace = RT_INFO->dummy_erf; 311 break; 312 case RT_FORMAT_PCAP: 313 if (!RT_INFO->dummy_pcap) { 314 RT_INFO->dummy_pcap = trace_create_dead("pcap:-"); 315 } 316 packet->trace = RT_INFO->dummy_pcap; 317 break; 318 case RT_FORMAT_WAG: 319 if (!RT_INFO->dummy_wag) { 320 RT_INFO->dummy_wag = trace_create_dead("wtf:-"); 321 } 322 packet->trace = RT_INFO->dummy_wag; 323 break; 324 default: 325 printf("Unrecognised format: %d\n", format); 326 return -1; 354 if (rt_set_format(libtrace, packet, format) < 0) { 355 return -1; 327 356 } 328 329 357 // set packet->payload 330 switch (format) { 331 case RT_FORMAT_ERF: 332 erfptr = (dag_record_t *)packet->header; 333 334 if (erfptr->flags.rxerror == 1) { 335 packet->payload = NULL; 336 } else { 337 packet->payload = (char *)packet->buffer 338 + trace_get_framing_length(packet); 339 } 340 break; 341 default: 342 packet->payload = (char *)packet->buffer + 343 trace_get_framing_length(packet); 344 break; 345 } 358 rt_set_payload(packet, format); 346 359 // send ack 347 360 break;
Note: See TracChangeset
for help on using the changeset viewer.