14edb46e9SPaul Traina /* 24edb46e9SPaul Traina * Copyright (c) 1995, 1996 34edb46e9SPaul Traina * The Regents of the University of California. All rights reserved. 44edb46e9SPaul Traina * 54edb46e9SPaul Traina * Redistribution and use in source and binary forms, with or without 64edb46e9SPaul Traina * modification, are permitted provided that: (1) source code distributions 74edb46e9SPaul Traina * retain the above copyright notice and this paragraph in its entirety, (2) 84edb46e9SPaul Traina * distributions including binary code include the above copyright notice and 94edb46e9SPaul Traina * this paragraph in its entirety in the documentation or other materials 104edb46e9SPaul Traina * provided with the distribution, and (3) all advertising materials mentioning 114edb46e9SPaul Traina * features or use of this software display the following acknowledgement: 124edb46e9SPaul Traina * ``This product includes software developed by the University of California, 134edb46e9SPaul Traina * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 144edb46e9SPaul Traina * the University nor the names of its contributors may be used to endorse 154edb46e9SPaul Traina * or promote products derived from this software without specific prior 164edb46e9SPaul Traina * written permission. 174edb46e9SPaul Traina * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 184edb46e9SPaul Traina * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 194edb46e9SPaul Traina * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 204edb46e9SPaul Traina */ 214edb46e9SPaul Traina 224edb46e9SPaul Traina #ifndef lint 234edb46e9SPaul Traina static char rcsid[] = 244edb46e9SPaul Traina "@(#) $Header: print-pim.c,v 1.6 96/07/23 14:17:26 leres Exp $ (LBL)"; 254edb46e9SPaul Traina #endif 264edb46e9SPaul Traina 274edb46e9SPaul Traina #include <sys/param.h> 284edb46e9SPaul Traina #include <sys/time.h> 294edb46e9SPaul Traina #include <sys/socket.h> 304edb46e9SPaul Traina 314edb46e9SPaul Traina #include <netinet/in.h> 324edb46e9SPaul Traina #include <netinet/in_systm.h> 334edb46e9SPaul Traina #include <netinet/ip.h> 344edb46e9SPaul Traina #include <netinet/ip_var.h> 354edb46e9SPaul Traina #include <netinet/udp.h> 364edb46e9SPaul Traina #include <netinet/udp_var.h> 374edb46e9SPaul Traina #include <netinet/tcp.h> 384edb46e9SPaul Traina #include <netinet/tcpip.h> 394edb46e9SPaul Traina 404edb46e9SPaul Traina #include <stdio.h> 414edb46e9SPaul Traina #include <stdlib.h> 424edb46e9SPaul Traina #include <unistd.h> 434edb46e9SPaul Traina 444edb46e9SPaul Traina #include "interface.h" 454edb46e9SPaul Traina #include "addrtoname.h" 464edb46e9SPaul Traina 474edb46e9SPaul Traina void 484edb46e9SPaul Traina pim_print(register const u_char *bp, register u_int len) 494edb46e9SPaul Traina { 504edb46e9SPaul Traina register const u_char *ep; 514edb46e9SPaul Traina register u_char type; 524edb46e9SPaul Traina 534edb46e9SPaul Traina ep = (const u_char *)snapend; 544edb46e9SPaul Traina if (bp >= ep) 554edb46e9SPaul Traina return; 564edb46e9SPaul Traina 574edb46e9SPaul Traina type = bp[1]; 584edb46e9SPaul Traina 594edb46e9SPaul Traina switch (type) { 604edb46e9SPaul Traina case 0: 614edb46e9SPaul Traina (void)printf(" Query"); 624edb46e9SPaul Traina break; 634edb46e9SPaul Traina 644edb46e9SPaul Traina case 1: 654edb46e9SPaul Traina (void)printf(" Register"); 664edb46e9SPaul Traina break; 674edb46e9SPaul Traina 684edb46e9SPaul Traina case 2: 694edb46e9SPaul Traina (void)printf(" Register-Stop"); 704edb46e9SPaul Traina break; 714edb46e9SPaul Traina 724edb46e9SPaul Traina case 3: 734edb46e9SPaul Traina (void)printf(" Join/Prune"); 744edb46e9SPaul Traina break; 754edb46e9SPaul Traina 764edb46e9SPaul Traina case 4: 774edb46e9SPaul Traina (void)printf(" RP-reachable"); 784edb46e9SPaul Traina break; 794edb46e9SPaul Traina 804edb46e9SPaul Traina case 5: 814edb46e9SPaul Traina (void)printf(" Assert"); 824edb46e9SPaul Traina break; 834edb46e9SPaul Traina 844edb46e9SPaul Traina case 6: 854edb46e9SPaul Traina (void)printf(" Graft"); 864edb46e9SPaul Traina break; 874edb46e9SPaul Traina 884edb46e9SPaul Traina case 7: 894edb46e9SPaul Traina (void)printf(" Graft-ACK"); 904edb46e9SPaul Traina break; 914edb46e9SPaul Traina 924edb46e9SPaul Traina case 8: 934edb46e9SPaul Traina (void)printf(" Mode"); 944edb46e9SPaul Traina break; 954edb46e9SPaul Traina 964edb46e9SPaul Traina default: 974edb46e9SPaul Traina (void)printf(" [type %d]", type); 984edb46e9SPaul Traina break; 994edb46e9SPaul Traina } 1004edb46e9SPaul Traina } 101