Changeset f398c61
- Timestamp:
- 04/21/17 14:40:32 (4 years ago)
- Branches:
- cachetimestamps, develop, dpdk-ndag, etsilive, master, ndag_format, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance
- Children:
- 633339d, b606855, d47ca18, e9c089a
- Parents:
- ed3a238
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpacketdump/eth_34525.c
ree6e802 rf398c61 38 38 { 39 39 libtrace_ip6_t *ip = (libtrace_ip6_t*)packet; 40 41 40 uint32_t tmp = ntohl(*(uint32_t*)ip); 42 41 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); 42 int truncated = 0; 43 char ipstr[INET6_ADDRSTRLEN]; 49 44 45 do { 46 if (len < 4) { 47 truncated = 1; 48 break; 49 } 50 50 51 char ipstr[INET6_ADDRSTRLEN]; 52 inet_ntop(AF_INET6, &(ip->ip_src), ipstr, INET6_ADDRSTRLEN); 51 printf(" IPv6: Version %u\n", (tmp >> 28) & 0x000000f); 52 printf(" IPv6: Class %u\n", (tmp >> 20) & 0x000000ff); 53 printf(" IPv6: Flow Label %u\n", tmp & 0x000fffff); 53 54 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); 55 if (len < 6) { 56 truncated = 1; 57 break; 58 } 59 printf(" IPv6: Payload Length %u\n", ntohs(ip->plen)); 60 61 if (len < 7) { 62 truncated = 1; 63 break; 64 } 65 printf(" IPv6: Next Header %u\n", ip->nxt); 66 if (len < 8) { 67 truncated = 1; 68 break; 69 } 70 printf(" IPv6: Hop Limit %u\n", ip->hlim); 71 72 if (len < 24) { 73 truncated = 1; 74 break; 75 } 76 77 inet_ntop(AF_INET6, &(ip->ip_src), ipstr, INET6_ADDRSTRLEN); 78 printf(" IPv6: Source IP %s\n", ipstr); 79 80 if (len < 40) { 81 truncated = 1; 82 break; 83 } 84 85 inet_ntop(AF_INET6, &(ip->ip_dst), ipstr, INET6_ADDRSTRLEN); 86 printf(" IPv6: Destination IP %s\n", ipstr); 87 } while (0); 88 89 if (truncated) { 90 printf(" IPv6: [Truncated]\n"); 91 return; 92 } 57 93 58 94 decode_next(packet+sizeof(libtrace_ip6_t),len-sizeof(libtrace_ip6_t),"ip",ip->nxt);
Note: See TracChangeset
for help on using the changeset viewer.