xref: /freebsd/contrib/tcpdump/print-pim.c (revision 4edb46e9a85ca35d3bed523171d11a748861ce82)
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