1878ed226SJulian Elischer /* 2878ed226SJulian Elischer * ng_ubt.h 3c398230bSWarner Losh */ 4c398230bSWarner Losh 5c398230bSWarner Losh /*- 64d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 7fe267a55SPedro F. Giffuni * 8878ed226SJulian Elischer * Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com> 9878ed226SJulian Elischer * All rights reserved. 10878ed226SJulian Elischer * 11878ed226SJulian Elischer * Redistribution and use in source and binary forms, with or without 12878ed226SJulian Elischer * modification, are permitted provided that the following conditions 13878ed226SJulian Elischer * are met: 14878ed226SJulian Elischer * 1. Redistributions of source code must retain the above copyright 15878ed226SJulian Elischer * notice, this list of conditions and the following disclaimer. 16878ed226SJulian Elischer * 2. Redistributions in binary form must reproduce the above copyright 17878ed226SJulian Elischer * notice, this list of conditions and the following disclaimer in the 18878ed226SJulian Elischer * documentation and/or other materials provided with the distribution. 19878ed226SJulian Elischer * 20878ed226SJulian Elischer * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 21878ed226SJulian Elischer * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22878ed226SJulian Elischer * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23878ed226SJulian Elischer * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 24878ed226SJulian Elischer * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25878ed226SJulian Elischer * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26878ed226SJulian Elischer * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27878ed226SJulian Elischer * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28878ed226SJulian Elischer * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29878ed226SJulian Elischer * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30878ed226SJulian Elischer * SUCH DAMAGE. 31878ed226SJulian Elischer * 32f2bb1caeSJulian Elischer * $Id: ng_ubt.h,v 1.6 2003/04/13 21:34:42 max Exp $ 33878ed226SJulian Elischer */ 34878ed226SJulian Elischer 35878ed226SJulian Elischer #ifndef _NG_UBT_H_ 36878ed226SJulian Elischer #define _NG_UBT_H_ 37878ed226SJulian Elischer 38878ed226SJulian Elischer /************************************************************************** 39878ed226SJulian Elischer ************************************************************************** 40878ed226SJulian Elischer ** Netgraph node hook name, type name and type cookie and commands 41878ed226SJulian Elischer ************************************************************************** 42878ed226SJulian Elischer **************************************************************************/ 43878ed226SJulian Elischer 44878ed226SJulian Elischer #define NG_UBT_NODE_TYPE "ubt" 45878ed226SJulian Elischer #define NG_UBT_HOOK "hook" 46878ed226SJulian Elischer 47878ed226SJulian Elischer #define NGM_UBT_COOKIE 1021837971 48878ed226SJulian Elischer 49878ed226SJulian Elischer /* Debug levels */ 50878ed226SJulian Elischer #define NG_UBT_ALERT_LEVEL 1 51878ed226SJulian Elischer #define NG_UBT_ERR_LEVEL 2 52878ed226SJulian Elischer #define NG_UBT_WARN_LEVEL 3 53878ed226SJulian Elischer #define NG_UBT_INFO_LEVEL 4 54878ed226SJulian Elischer 55878ed226SJulian Elischer /************************************************************************** 56878ed226SJulian Elischer ************************************************************************** 57878ed226SJulian Elischer ** UBT node command/event parameters 58878ed226SJulian Elischer ************************************************************************** 59878ed226SJulian Elischer **************************************************************************/ 60878ed226SJulian Elischer 61878ed226SJulian Elischer #define NGM_UBT_NODE_SET_DEBUG 1 /* set debug level */ 62878ed226SJulian Elischer #define NGM_UBT_NODE_GET_DEBUG 2 /* get debug level */ 63878ed226SJulian Elischer typedef u_int16_t ng_ubt_node_debug_ep; 64878ed226SJulian Elischer 65878ed226SJulian Elischer #define NGM_UBT_NODE_SET_QLEN 3 /* set queue length */ 66878ed226SJulian Elischer #define NGM_UBT_NODE_GET_QLEN 4 /* get queue length */ 67878ed226SJulian Elischer typedef struct { 68878ed226SJulian Elischer int32_t queue; /* queue index */ 69f2bb1caeSJulian Elischer #define NGM_UBT_NODE_QUEUE_CMD 1 /* commands */ 70f2bb1caeSJulian Elischer #define NGM_UBT_NODE_QUEUE_ACL 2 /* ACL data */ 71f2bb1caeSJulian Elischer #define NGM_UBT_NODE_QUEUE_SCO 3 /* SCO data */ 72878ed226SJulian Elischer 73878ed226SJulian Elischer int32_t qlen; /* queue length */ 74878ed226SJulian Elischer } ng_ubt_node_qlen_ep; 75878ed226SJulian Elischer 76878ed226SJulian Elischer #define NGM_UBT_NODE_GET_STAT 5 /* get statistic */ 77878ed226SJulian Elischer typedef struct { 78878ed226SJulian Elischer u_int32_t pckts_recv; /* # of packets received */ 79878ed226SJulian Elischer u_int32_t bytes_recv; /* # of bytes received */ 80878ed226SJulian Elischer u_int32_t pckts_sent; /* # of packets sent */ 81878ed226SJulian Elischer u_int32_t bytes_sent; /* # of bytes sent */ 82878ed226SJulian Elischer u_int32_t oerrors; /* # of output errors */ 83878ed226SJulian Elischer u_int32_t ierrors; /* # of input errors */ 84878ed226SJulian Elischer } ng_ubt_node_stat_ep; 85878ed226SJulian Elischer 86878ed226SJulian Elischer #define NGM_UBT_NODE_RESET_STAT 6 /* reset statistic */ 87878ed226SJulian Elischer 88f2bb1caeSJulian Elischer #define NGM_UBT_NODE_DEV_NODES 7 /* on/off device interface */ 89f2bb1caeSJulian Elischer typedef u_int16_t ng_ubt_node_dev_nodes_ep; 90f2bb1caeSJulian Elischer 91878ed226SJulian Elischer #endif /* ndef _NG_UBT_H_ */ 92