]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/unix/sysv/linux/net/if_shaper.h
Prefer https to http for gnu.org and fsf.org URLs
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / net / if_shaper.h
1 /* Copyright (C) 1998-2019 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 dependant (read it shouldnt 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
44 struct 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 */