1139823Simp/*-
2122219Sharti * Copyright (c) 2001-2003
3122219Sharti *	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4122219Sharti * 	All rights reserved.
5122219Sharti *
6122219Sharti * Author: Hartmut Brandt <harti@freebsd.org>
7122219Sharti *
8122219Sharti * Redistribution and use in source and binary forms, with or without
9122219Sharti * modification, are permitted provided that the following conditions
10122219Sharti * are met:
11122219Sharti * 1. Redistributions of source code must retain the above copyright
12122219Sharti *    notice, this list of conditions and the following disclaimer.
13122219Sharti * 2. Redistributions in binary form must reproduce the above copyright
14122219Sharti *    notice, this list of conditions and the following disclaimer in the
15122219Sharti *    documentation and/or other materials provided with the distribution.
16122219Sharti *
17122219Sharti * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18122219Sharti * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19122219Sharti * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20122219Sharti * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21122219Sharti * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22122219Sharti * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23122219Sharti * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24122219Sharti * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25122219Sharti * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26122219Sharti * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27122219Sharti * SUCH DAMAGE.
28122219Sharti *
29122219Sharti * $FreeBSD$
30122219Sharti *
31122219Sharti * Netgraph module for UNI 4.0
32122219Sharti */
33122219Sharti#ifndef _NETGRAPH_ATM_NG_UNI_H_
34122219Sharti#define _NETGRAPH_ATM_NG_UNI_H_
35122219Sharti
36122219Sharti#define NG_UNI_NODE_TYPE "uni"
37122219Sharti#define NGM_UNI_COOKIE	981112392
38122219Sharti
39122219Shartienum {
40122219Sharti	NGM_UNI_GETDEBUG,	/* get debug flags */
41122219Sharti	NGM_UNI_SETDEBUG,	/* set debug flags */
42122219Sharti	NGM_UNI_GET_CONFIG,	/* get configuration */
43122219Sharti	NGM_UNI_SET_CONFIG,	/* set configuration */
44122219Sharti	NGM_UNI_ENABLE,		/* enable processing */
45122219Sharti	NGM_UNI_DISABLE,	/* free resources and disable */
46122219Sharti	NGM_UNI_GETSTATE,	/* retrieve coord state */
47122219Sharti};
48122219Sharti
49122219Shartistruct ngm_uni_debug {
50122219Sharti	uint32_t	level[UNI_MAXFACILITY];
51122219Sharti};
52122219Sharti#define NGM_UNI_DEBUGLEVEL_INFO {				\
53122219Sharti	&ng_parse_uint32_type,					\
54122219Sharti	UNI_MAXFACILITY						\
55122219Sharti}
56122219Sharti#define NGM_UNI_DEBUG_INFO 					\
57122219Sharti	{							\
58122219Sharti	  { "level",	&ng_uni_debuglevel_type },		\
59122219Sharti	  { NULL }						\
60122219Sharti	}
61122219Sharti
62122219Sharti#define NGM_UNI_CONFIG_INFO 					\
63122219Sharti	{							\
64122219Sharti	  { "proto",	&ng_parse_uint32_type },		\
65122219Sharti	  { "popt",	&ng_parse_uint32_type },		\
66122219Sharti	  { "option",	&ng_parse_uint32_type },		\
67122219Sharti	  { "timer301",	&ng_parse_uint32_type },		\
68122219Sharti	  { "timer303",	&ng_parse_uint32_type },		\
69122219Sharti	  { "init303",	&ng_parse_uint32_type },		\
70122219Sharti	  { "timer308",	&ng_parse_uint32_type },		\
71122219Sharti	  { "init308",	&ng_parse_uint32_type },		\
72122219Sharti	  { "timer309",	&ng_parse_uint32_type },		\
73122219Sharti	  { "timer310",	&ng_parse_uint32_type },		\
74122219Sharti	  { "timer313",	&ng_parse_uint32_type },		\
75122219Sharti	  { "timer316",	&ng_parse_uint32_type },		\
76122219Sharti	  { "init316",	&ng_parse_uint32_type },		\
77122219Sharti	  { "timer317",	&ng_parse_uint32_type },		\
78122219Sharti	  { "timer322",	&ng_parse_uint32_type },		\
79122219Sharti	  { "init322",	&ng_parse_uint32_type },		\
80122219Sharti	  { "timer397",	&ng_parse_uint32_type },		\
81122219Sharti	  { "timer398",	&ng_parse_uint32_type },		\
82122219Sharti	  { "timer399",	&ng_parse_uint32_type },		\
83122219Sharti	  { NULL }						\
84122219Sharti	}
85122219Sharti
86122219Shartistruct ngm_uni_config_mask {
87122219Sharti	uint32_t		mask;
88122219Sharti	uint32_t		popt_mask;
89122219Sharti	uint32_t		option_mask;
90122219Sharti};
91122219Sharti#define NGM_UNI_CONFIG_MASK_INFO 				\
92122219Sharti	{							\
93122219Sharti	  { "mask",		&ng_parse_hint32_type },	\
94122219Sharti	  { "popt_mask",	&ng_parse_hint32_type },	\
95122219Sharti	  { "option_mask",	&ng_parse_hint32_type },	\
96122219Sharti	  { NULL }						\
97122219Sharti	}
98122219Sharti
99122219Shartistruct ngm_uni_set_config {
100122219Sharti	struct uni_config		config;
101122219Sharti	struct ngm_uni_config_mask	mask;
102122219Sharti};
103122219Sharti#define NGM_UNI_SET_CONFIG_INFO 				\
104122219Sharti	{							\
105122219Sharti	  { "config",		&ng_uni_config_type },		\
106122219Sharti	  { "mask",		&ng_uni_config_mask_type },	\
107122219Sharti	  { NULL }						\
108122219Sharti	}
109122219Sharti
110122219Sharti/*
111122219Sharti * API message
112122219Sharti */
113122219Shartistruct uni_arg {
114122219Sharti	uint32_t	sig;
115122219Sharti	uint32_t	cookie;
116122219Sharti	u_char		data[];
117122219Sharti};
118122219Sharti
119122219Sharti#endif
120