xref: /minix3/external/bsd/dhcp/dist/includes/ctrace.h (revision 83ee113ee0d94f3844d44065af2311604e9a30ad)
1*83ee113eSDavid van Moolenbroek /*	$NetBSD: ctrace.h,v 1.1.1.3 2014/07/12 11:57:53 spz Exp $	*/
2*83ee113eSDavid van Moolenbroek /* trace.h
3*83ee113eSDavid van Moolenbroek 
4*83ee113eSDavid van Moolenbroek    Definitions for dhcp tracing facility... */
5*83ee113eSDavid van Moolenbroek 
6*83ee113eSDavid van Moolenbroek /*
7*83ee113eSDavid van Moolenbroek  * Copyright (c) 2004,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
8*83ee113eSDavid van Moolenbroek  * Copyright (c) 2001-2003 by Internet Software Consortium
9*83ee113eSDavid van Moolenbroek  *
10*83ee113eSDavid van Moolenbroek  * Permission to use, copy, modify, and distribute this software for any
11*83ee113eSDavid van Moolenbroek  * purpose with or without fee is hereby granted, provided that the above
12*83ee113eSDavid van Moolenbroek  * copyright notice and this permission notice appear in all copies.
13*83ee113eSDavid van Moolenbroek  *
14*83ee113eSDavid van Moolenbroek  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
15*83ee113eSDavid van Moolenbroek  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16*83ee113eSDavid van Moolenbroek  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
17*83ee113eSDavid van Moolenbroek  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18*83ee113eSDavid van Moolenbroek  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19*83ee113eSDavid van Moolenbroek  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
20*83ee113eSDavid van Moolenbroek  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21*83ee113eSDavid van Moolenbroek  *
22*83ee113eSDavid van Moolenbroek  *   Internet Systems Consortium, Inc.
23*83ee113eSDavid van Moolenbroek  *   950 Charter Street
24*83ee113eSDavid van Moolenbroek  *   Redwood City, CA 94063
25*83ee113eSDavid van Moolenbroek  *   <info@isc.org>
26*83ee113eSDavid van Moolenbroek  *   https://www.isc.org/
27*83ee113eSDavid van Moolenbroek  *
28*83ee113eSDavid van Moolenbroek  */
29*83ee113eSDavid van Moolenbroek 
30*83ee113eSDavid van Moolenbroek typedef struct {
31*83ee113eSDavid van Moolenbroek 	struct in_addr primary_address;
32*83ee113eSDavid van Moolenbroek 	u_int32_t index;
33*83ee113eSDavid van Moolenbroek 	struct hardware hw_address;
34*83ee113eSDavid van Moolenbroek 	char name [IFNAMSIZ];
35*83ee113eSDavid van Moolenbroek } trace_interface_packet_t;
36*83ee113eSDavid van Moolenbroek 
37*83ee113eSDavid van Moolenbroek typedef struct {
38*83ee113eSDavid van Moolenbroek 	u_int32_t index;
39*83ee113eSDavid van Moolenbroek 	struct iaddr from;
40*83ee113eSDavid van Moolenbroek 	u_int16_t from_port;
41*83ee113eSDavid van Moolenbroek 	struct hardware hfrom;
42*83ee113eSDavid van Moolenbroek 	u_int8_t havehfrom;
43*83ee113eSDavid van Moolenbroek } trace_inpacket_t;
44*83ee113eSDavid van Moolenbroek 
45*83ee113eSDavid van Moolenbroek typedef struct {
46*83ee113eSDavid van Moolenbroek 	u_int32_t index;
47*83ee113eSDavid van Moolenbroek 	struct iaddr from;
48*83ee113eSDavid van Moolenbroek 	struct iaddr to;
49*83ee113eSDavid van Moolenbroek 	u_int16_t to_port;
50*83ee113eSDavid van Moolenbroek 	struct hardware hto;
51*83ee113eSDavid van Moolenbroek 	u_int8_t havehto;
52*83ee113eSDavid van Moolenbroek } trace_outpacket_t;
53*83ee113eSDavid van Moolenbroek 
54*83ee113eSDavid van Moolenbroek void trace_interface_register (trace_type_t *, struct interface_info *);
55*83ee113eSDavid van Moolenbroek void trace_interface_input (trace_type_t *, unsigned, char *);
56*83ee113eSDavid van Moolenbroek void trace_interface_stop (trace_type_t *);
57*83ee113eSDavid van Moolenbroek void trace_inpacket_stash (struct interface_info *,
58*83ee113eSDavid van Moolenbroek 			   struct dhcp_packet *, unsigned, unsigned int,
59*83ee113eSDavid van Moolenbroek 			   struct iaddr, struct hardware *);
60*83ee113eSDavid van Moolenbroek void trace_inpacket_input (trace_type_t *, unsigned, char *);
61*83ee113eSDavid van Moolenbroek void trace_inpacket_stop (trace_type_t *);
62*83ee113eSDavid van Moolenbroek void trace_outpacket_input (trace_type_t *, unsigned, char *);
63*83ee113eSDavid van Moolenbroek void trace_outpacket_stop (trace_type_t *);
64*83ee113eSDavid van Moolenbroek ssize_t trace_packet_send (struct interface_info *,
65*83ee113eSDavid van Moolenbroek 			   struct packet *, struct dhcp_packet *, size_t,
66*83ee113eSDavid van Moolenbroek 			   struct in_addr,
67*83ee113eSDavid van Moolenbroek 			   struct sockaddr_in *, struct hardware *);
68*83ee113eSDavid van Moolenbroek void trace_icmp_input_input (trace_type_t *, unsigned, char *);
69*83ee113eSDavid van Moolenbroek void trace_icmp_input_stop (trace_type_t *);
70*83ee113eSDavid van Moolenbroek void trace_icmp_output_input (trace_type_t *, unsigned, char *);
71*83ee113eSDavid van Moolenbroek void trace_icmp_output_stop (trace_type_t *);
72*83ee113eSDavid van Moolenbroek void trace_seed_stash (trace_type_t *, unsigned);
73*83ee113eSDavid van Moolenbroek void trace_seed_input (trace_type_t *, unsigned, char *);
74*83ee113eSDavid van Moolenbroek void trace_seed_stop (trace_type_t *);
75