master
 1/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
 2   This file is part of the GNU C Library.
 3
 4   The GNU C Library is free software; you can redistribute it and/or
 5   modify it under the terms of the GNU Lesser General Public
 6   License as published by the Free Software Foundation; either
 7   version 2.1 of the License, or (at your option) any later version.
 8
 9   The GNU C Library is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with the GNU C Library; if not, see
16   <https://www.gnu.org/licenses/>.  */
17
18#ifndef _NET_IF_SHAPER_H
19#define _NET_IF_SHAPER_H 1
20
21#include <sys/types.h>
22#include <stdint.h>
23#include <net/if.h>
24#include <sys/ioctl.h>
25
26__BEGIN_DECLS
27
28#define SHAPER_QLEN	10
29/*
30 *	This is a bit speed dependent (read it shouldn't be a constant!)
31 *
32 *	5 is about right for 28.8 upwards. Below that double for every
33 *	halving of speed or so. - ie about 20 for 9600 baud.
34 */
35#define SHAPER_LATENCY	(5 * HZ)
36#define SHAPER_MAXSLIP	2
37#define SHAPER_BURST	(HZ / 50)	/* Good for >128K then */
38
39#define SHAPER_SET_DEV		0x0001
40#define SHAPER_SET_SPEED	0x0002
41#define SHAPER_GET_DEV		0x0003
42#define SHAPER_GET_SPEED	0x0004
43
44struct shaperconf
45{
46  uint16_t ss_cmd;
47  union
48  {
49    char ssu_name[14];
50    uint32_t ssu_speed;
51  } ss_u;
52#define ss_speed ss_u.ssu_speed
53#define ss_name ss_u.ssu_name
54};
55
56__END_DECLS
57
58#endif /* net/if_shaper.h */