xref: /aosp_15_r20/external/iperf3/src/flowlabel.h (revision 7ab6e6ace082586527a400463bc693a412a40341)
1*7ab6e6acSAndroid Build Coastguard Worker /*
2*7ab6e6acSAndroid Build Coastguard Worker  * iperf, Copyright (c) 2014, The Regents of the University of
3*7ab6e6acSAndroid Build Coastguard Worker  * California, through Lawrence Berkeley National Laboratory (subject
4*7ab6e6acSAndroid Build Coastguard Worker  * to receipt of any required approvals from the U.S. Dept. of
5*7ab6e6acSAndroid Build Coastguard Worker  * Energy).  All rights reserved.
6*7ab6e6acSAndroid Build Coastguard Worker  *
7*7ab6e6acSAndroid Build Coastguard Worker  * If you have questions about your rights to use or distribute this
8*7ab6e6acSAndroid Build Coastguard Worker  * software, please contact Berkeley Lab's Technology Transfer
9*7ab6e6acSAndroid Build Coastguard Worker  * Department at [email protected].
10*7ab6e6acSAndroid Build Coastguard Worker  *
11*7ab6e6acSAndroid Build Coastguard Worker  * NOTICE.  This software is owned by the U.S. Department of Energy.
12*7ab6e6acSAndroid Build Coastguard Worker  * As such, the U.S. Government has been granted for itself and others
13*7ab6e6acSAndroid Build Coastguard Worker  * acting on its behalf a paid-up, nonexclusive, irrevocable,
14*7ab6e6acSAndroid Build Coastguard Worker  * worldwide license in the Software to reproduce, prepare derivative
15*7ab6e6acSAndroid Build Coastguard Worker  * works, and perform publicly and display publicly.  Beginning five
16*7ab6e6acSAndroid Build Coastguard Worker  * (5) years after the date permission to assert copyright is obtained
17*7ab6e6acSAndroid Build Coastguard Worker  * from the U.S. Department of Energy, and subject to any subsequent
18*7ab6e6acSAndroid Build Coastguard Worker  * five (5) year renewals, the U.S. Government is granted for itself
19*7ab6e6acSAndroid Build Coastguard Worker  * and others acting on its behalf a paid-up, nonexclusive,
20*7ab6e6acSAndroid Build Coastguard Worker  * irrevocable, worldwide license in the Software to reproduce,
21*7ab6e6acSAndroid Build Coastguard Worker  * prepare derivative works, distribute copies to the public, perform
22*7ab6e6acSAndroid Build Coastguard Worker  * publicly and display publicly, and to permit others to do so.
23*7ab6e6acSAndroid Build Coastguard Worker  *
24*7ab6e6acSAndroid Build Coastguard Worker  * This code is distributed under a BSD style license, see the LICENSE
25*7ab6e6acSAndroid Build Coastguard Worker  * file for complete information.
26*7ab6e6acSAndroid Build Coastguard Worker  */
27*7ab6e6acSAndroid Build Coastguard Worker #ifndef        __FLOW_LABEL_H
28*7ab6e6acSAndroid Build Coastguard Worker #define        __FLOW_LABEL_H
29*7ab6e6acSAndroid Build Coastguard Worker 
30*7ab6e6acSAndroid Build Coastguard Worker 
31*7ab6e6acSAndroid Build Coastguard Worker #include <linux/types.h>
32*7ab6e6acSAndroid Build Coastguard Worker 
33*7ab6e6acSAndroid Build Coastguard Worker /*
34*7ab6e6acSAndroid Build Coastguard Worker    It is just a stripped copy of the Linux kernel header "linux/in6.h"
35*7ab6e6acSAndroid Build Coastguard Worker    "Flow label" things are still not defined in "netinet/in*.h" headers,
36*7ab6e6acSAndroid Build Coastguard Worker    but we cannot use "linux/in6.h" immediately because it currently
37*7ab6e6acSAndroid Build Coastguard Worker    conflicts with "netinet/in.h" .
38*7ab6e6acSAndroid Build Coastguard Worker */
39*7ab6e6acSAndroid Build Coastguard Worker 
40*7ab6e6acSAndroid Build Coastguard Worker #ifndef __ANDROID__
41*7ab6e6acSAndroid Build Coastguard Worker struct in6_flowlabel_req
42*7ab6e6acSAndroid Build Coastguard Worker {
43*7ab6e6acSAndroid Build Coastguard Worker     struct in6_addr flr_dst;
44*7ab6e6acSAndroid Build Coastguard Worker     __u32   flr_label;
45*7ab6e6acSAndroid Build Coastguard Worker     __u8    flr_action;
46*7ab6e6acSAndroid Build Coastguard Worker     __u8    flr_share;
47*7ab6e6acSAndroid Build Coastguard Worker     __u16   flr_flags;
48*7ab6e6acSAndroid Build Coastguard Worker     __u16   flr_expires;
49*7ab6e6acSAndroid Build Coastguard Worker     __u16   flr_linger;
50*7ab6e6acSAndroid Build Coastguard Worker     __u32   __flr_pad;
51*7ab6e6acSAndroid Build Coastguard Worker     /* Options in format of IPV6_PKTOPTIONS */
52*7ab6e6acSAndroid Build Coastguard Worker };
53*7ab6e6acSAndroid Build Coastguard Worker #endif
54*7ab6e6acSAndroid Build Coastguard Worker 
55*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_A_GET           0
56*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_A_PUT           1
57*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_A_RENEW         2
58*7ab6e6acSAndroid Build Coastguard Worker 
59*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_F_CREATE        1
60*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_F_EXCL          2
61*7ab6e6acSAndroid Build Coastguard Worker 
62*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_S_NONE          0
63*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_S_EXCL          1
64*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_S_PROCESS       2
65*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_S_USER          3
66*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FL_S_ANY           255
67*7ab6e6acSAndroid Build Coastguard Worker 
68*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
69*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FLOWINFO_PRIORITY  0x0ff00000
70*7ab6e6acSAndroid Build Coastguard Worker 
71*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FLOWLABEL_MGR      32
72*7ab6e6acSAndroid Build Coastguard Worker #define IPV6_FLOWINFO_SEND      33
73*7ab6e6acSAndroid Build Coastguard Worker 
74*7ab6e6acSAndroid Build Coastguard Worker #endif
75