Home | History | Annotate | Download | only in netfilter
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _XT_OSF_H
     20 #define _XT_OSF_H
     21 #include <linux/types.h>
     22 #include <linux/ip.h>
     23 #include <linux/tcp.h>
     24 #define MAXGENRELEN 32
     25 #define XT_OSF_GENRE (1 << 0)
     26 #define XT_OSF_TTL (1 << 1)
     27 #define XT_OSF_LOG (1 << 2)
     28 #define XT_OSF_INVERT (1 << 3)
     29 #define XT_OSF_LOGLEVEL_ALL 0
     30 #define XT_OSF_LOGLEVEL_FIRST 1
     31 #define XT_OSF_LOGLEVEL_ALL_KNOWN 2
     32 #define XT_OSF_TTL_TRUE 0
     33 #define XT_OSF_TTL_LESS 1
     34 #define XT_OSF_TTL_NOCHECK 2
     35 struct xt_osf_info {
     36   char genre[MAXGENRELEN];
     37   __u32 len;
     38   __u32 flags;
     39   __u32 loglevel;
     40   __u32 ttl;
     41 };
     42 struct xt_osf_wc {
     43   __u32 wc;
     44   __u32 val;
     45 };
     46 struct xt_osf_opt {
     47   __u16 kind, length;
     48   struct xt_osf_wc wc;
     49 };
     50 struct xt_osf_user_finger {
     51   struct xt_osf_wc wss;
     52   __u8 ttl, df;
     53   __u16 ss, mss;
     54   __u16 opt_num;
     55   char genre[MAXGENRELEN];
     56   char version[MAXGENRELEN];
     57   char subtype[MAXGENRELEN];
     58   struct xt_osf_opt opt[MAX_IPOPTLEN];
     59 };
     60 struct xt_osf_nlmsg {
     61   struct xt_osf_user_finger f;
     62   struct iphdr ip;
     63   struct tcphdr tcp;
     64 };
     65 enum iana_options {
     66   OSFOPT_EOL = 0,
     67   OSFOPT_NOP,
     68   OSFOPT_MSS,
     69   OSFOPT_WSO,
     70   OSFOPT_SACKP,
     71   OSFOPT_SACK,
     72   OSFOPT_ECHO,
     73   OSFOPT_ECHOREPLY,
     74   OSFOPT_TS,
     75   OSFOPT_POCP,
     76   OSFOPT_POSP,
     77   OSFOPT_EMPTY = 255,
     78 };
     79 enum xt_osf_window_size_options {
     80   OSF_WSS_PLAIN = 0,
     81   OSF_WSS_MSS,
     82   OSF_WSS_MTU,
     83   OSF_WSS_MODULO,
     84   OSF_WSS_MAX,
     85 };
     86 enum xt_osf_msg_types {
     87   OSF_MSG_ADD,
     88   OSF_MSG_REMOVE,
     89   OSF_MSG_MAX,
     90 };
     91 enum xt_osf_attr_type {
     92   OSF_ATTR_UNSPEC,
     93   OSF_ATTR_FINGER,
     94   OSF_ATTR_MAX,
     95 };
     96 #endif
     97