source: libpacketdump/ospf2_1.c @ e224862

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivegetfragoffhelplibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since e224862 was e224862, checked in by Shane Alcock <salcock@…>, 10 years ago
  • Added libpacketdump decoders for a large portion of OSPF v2
  • Property mode set to 100644
File size: 1.3 KB
Line 
1#include <sys/types.h>
2#include <sys/socket.h>
3#include <netinet/in.h>
4#include <stdio.h>
5#include <arpa/inet.h>
6#include "libpacketdump.h"
7
8
9DLLEXPORT void decode(int link_type UNUSED,const char *packet,unsigned len) {
10
11        libtrace_ospf_hello_v2_t *hello = (libtrace_ospf_hello_v2_t *)packet;
12       
13        if (len < 4) 
14                return;
15        printf(" OSPF Hello: Network Mask %s\n", inet_ntoa(hello->mask));
16        if (len < 6)
17                return;
18
19        printf(" OSPF Hello: Interval %u ", ntohs(hello->interval));
20
21        if (len < 7) {
22                printf("\n");
23                return;
24        }
25
26        printf("Options ");
27
28        if (hello->hello_options.e_bit)
29                printf("E ");
30        if (hello->hello_options.mc_bit)
31                printf("MC ");
32        if (hello->hello_options.np_bit)
33                printf("N/P ");
34        if (hello->hello_options.ea_bit)
35                printf("EA ");
36        if (hello->hello_options.dc_bit)
37                printf("DC ");
38        printf("\n");
39
40        if (len < 8) 
41                return;
42
43        printf(" OSPF Hello: Priority %u ", hello->priority);
44       
45        if (len < 12) {
46                printf("\n");
47                return;
48        }
49
50        printf("Dead Interval %u\n", ntohl(hello->deadint));
51       
52        if (len < 16) 
53                return;
54
55        printf(" OSPF Hello: Designated Router: %s\n", inet_ntoa(hello->designated));
56
57        if (len < 20)
58                return;
59
60        printf(" OSPF Hello: Backup Designated Router: %s\n", inet_ntoa(hello->backup));
61
62        if (len < 24)
63                return;
64       
65        printf(" OSPF Hello: Neighbour: %s\n", inet_ntoa(hello->backup));
66
67        return;
68}
Note: See TracBrowser for help on using the repository browser.