source: libpacketdump/eth_0.c @ 756b8f9

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivegetfragoffhelplibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since 756b8f9 was 6ebfd24, checked in by Perry Lorier <perry@…>, 12 years ago

Add a decoder for ubiquity's dodgy packets

  • Property mode set to 100644
File size: 997 bytes
Line 
1#include <sys/types.h>
2#include <sys/socket.h>
3#include <netinet/in.h>
4#include <stdio.h>
5#include <ctype.h>
6#include "libpacketdump.h"
7
8#define WIDTH 16
9
10/* This is an example of a decoder for a protocol that we know exists, but is undocumented.
11 * We dump the protocol as hex, and then skip onto the next header which we do know exists.
12 */
13
14DLLEXPORT void decode(int link_type UNUSED,const char *packet,unsigned len)
15{
16        unsigned int i=0;
17        printf(" Ubiquity:");
18        for(i=0;i<132; /* Nothing */ ) {
19                unsigned int j;
20                printf("\n ");
21                for(j=0;j<WIDTH;j++) {
22                        if (i+j<len)
23                                printf(" %02x",(unsigned char)packet[i+j]);
24                        else
25                                printf("   ");
26                }
27                printf("    ");
28                for(j=0;j<WIDTH;j++) {
29                        if (i+j<len)
30                                if (isprint((unsigned char)packet[i+j]))
31                                        printf("%c",(unsigned char)packet[i+j]);
32                                else
33                                        printf(".");
34                        else
35                                printf("   ");
36                }
37                if (i+WIDTH>len)
38                        break;
39                else
40                        i+=WIDTH;
41        }
42        printf("\n");
43        if (len>132)
44                decode_next(packet+132,len-132,"link",4);
45        return;
46}
Note: See TracBrowser for help on using the repository browser.