source: libpacketdump/eth_34525.c @ ee6e802

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivendag_formatrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since ee6e802 was ee6e802, checked in by Shane Alcock <salcock@…>, 5 years ago

Updated copyright blurb on all source files

In some cases, this meant adding copyright blurbs to files that
had never had them before.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*
2 *
3 * Copyright (c) 2007-2016 The University of Waikato, Hamilton, New Zealand.
4 * All rights reserved.
5 *
6 * This file is part of libtrace.
7 *
8 * This code has been developed by the University of Waikato WAND
9 * research group. For further information please see http://www.wand.net.nz/
10 *
11 * libtrace is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation; either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * libtrace is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 *
24 *
25 */
26#include <sys/types.h>
27#include <sys/socket.h>
28#include <netinet/in.h>
29#include <stdio.h>
30#include "libpacketdump.h"
31#ifndef WIN32
32        #include <netinet/in_systm.h>
33#endif
34#include <arpa/inet.h>
35#include <netdb.h>
36
37DLLEXPORT void decode(int link_type UNUSED,const char *packet,unsigned len)
38{
39        libtrace_ip6_t *ip = (libtrace_ip6_t*)packet;
40       
41        uint32_t tmp = ntohl(*(uint32_t*)ip);
42
43        printf(" IPv6: Version %u\n", (tmp >> 28) & 0x000000f);
44        printf(" IPv6: Class %u\n", (tmp >> 20) & 0x000000ff);
45        printf(" IPv6: Flow Label %u\n", tmp & 0x000fffff);
46        printf(" IPv6: Payload Length %u\n", ntohs(ip->plen));
47        printf(" IPv6: Next Header %u\n", ip->nxt);
48        printf(" IPv6: Hop Limit %u\n", ip->hlim);
49
50
51        char ipstr[INET6_ADDRSTRLEN];                             
52        inet_ntop(AF_INET6, &(ip->ip_src), ipstr, INET6_ADDRSTRLEN);
53
54        printf(" IPv6: Source IP %s\n", ipstr);
55        inet_ntop(AF_INET6, &(ip->ip_dst), ipstr, INET6_ADDRSTRLEN);
56        printf(" IPv6: Destination IP %s\n", ipstr);
57
58        decode_next(packet+sizeof(libtrace_ip6_t),len-sizeof(libtrace_ip6_t),"ip",ip->nxt);
59        return;
60}
Note: See TracBrowser for help on using the repository browser.