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