X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/3820594d702f863088754f590546f21cfe3c562c..2b4965f56167dfda7c60fc9db2d145698d948fd5:/print-juniper.c diff --git a/print-juniper.c b/print-juniper.c index b8a70d4e..55ca1c9c 100644 --- a/print-juniper.c +++ b/print-juniper.c @@ -1,3 +1,5 @@ +/* NetBSD: print-juniper.c,v 1.2 2007/07/24 11:53:45 drochner Exp */ + /* * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that: (1) source code @@ -15,7 +17,9 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-juniper.c,v 1.31 2006-03-10 23:43:29 hannes Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-juniper.c,v 1.34 2007-08-29 02:31:44 mcr Exp $ (LBL)"; +#else +__RCSID("NetBSD: print-juniper.c,v 1.3 2007/07/25 06:31:32 dogcow Exp "); #endif #ifdef HAVE_CONFIG_H @@ -467,13 +471,14 @@ juniper_ggsn_print(const struct pcap_pkthdr *h, register const u_char *p) return l2info.header_len; p+=l2info.header_len; - gh = (struct juniper_ggsn_header *)p; + gh = (struct juniper_ggsn_header *)&l2info.cookie; - if (eflag) + if (eflag) { printf("proto %s (%u), vlan %u: ", tok2str(juniper_protocol_values,"Unknown",gh->proto), gh->proto, EXTRACT_16BITS(&gh->vlan_id[0])); + } switch (gh->proto) { case JUNIPER_PROTO_IPV4: @@ -545,8 +550,8 @@ juniper_es_print(const struct pcap_pkthdr *h, register const u_char *p) tok2str(juniper_ipsec_type_values,"Unknown",ih->type), ih->type, EXTRACT_32BITS(&ih->spi), - ipaddr_string(EXTRACT_32BITS(&ih->src_ip)), - ipaddr_string(EXTRACT_32BITS(&ih->dst_ip)), + ipaddr_string(&ih->src_ip), + ipaddr_string(&ih->dst_ip), l2info.length); } else { printf("ES SA, index %u, ttl %u type %s (%u), length %u\n", @@ -642,7 +647,7 @@ juniper_pppoe_print(const struct pcap_pkthdr *h, register const u_char *p) p+=l2info.header_len; /* this DLT contains nothing but raw ethernet frames */ - ether_print(p, l2info.length, l2info.caplen); + ether_print(p, l2info.length, l2info.caplen, NULL, NULL); return l2info.header_len; } #endif @@ -659,7 +664,7 @@ juniper_ether_print(const struct pcap_pkthdr *h, register const u_char *p) p+=l2info.header_len; /* this DLT contains nothing but raw Ethernet frames */ - ether_print(p, l2info.length, l2info.caplen); + ether_print(p, l2info.length, l2info.caplen, NULL, NULL); return l2info.header_len; } #endif @@ -731,11 +736,10 @@ juniper_pppoe_atm_print(const struct pcap_pkthdr *h, register const u_char *p) extracted_ethertype = EXTRACT_16BITS(p); /* this DLT contains nothing but raw PPPoE frames, * prepended with a type field*/ - if (ether_encap_print(extracted_ethertype, + if (ethertype_print(extracted_ethertype, p+ETHERTYPE_LEN, l2info.length-ETHERTYPE_LEN, - l2info.caplen-ETHERTYPE_LEN, - &extracted_ethertype) == 0) + l2info.caplen-ETHERTYPE_LEN) == 0) /* ether_type not known, probably it wasn't one */ printf("unknown ethertype 0x%04x", extracted_ethertype); @@ -983,7 +987,7 @@ juniper_atm2_print(const struct pcap_pkthdr *h, register const u_char *p) if (l2info.direction != JUNIPER_BPF_PKT_IN && /* ether-over-1483 encaps ? */ (EXTRACT_32BITS(l2info.cookie) & ATM2_GAP_COUNT_MASK)) { - ether_print(p, l2info.length, l2info.caplen); + ether_print(p, l2info.length, l2info.caplen, NULL, NULL); return l2info.header_len; } @@ -1404,6 +1408,10 @@ juniper_parse_header (const u_char *p, const struct pcap_pkthdr *h, struct junip } break; #endif +#ifdef DLT_JUNIPER_GGSN + case DLT_JUNIPER_GGSN: + break; +#endif #ifdef DLT_JUNIPER_ATM1 case DLT_JUNIPER_ATM1: break;