1b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy#ifndef _XT_STRING_H
2b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy#define _XT_STRING_H
3b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy
4350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt#include <linux/types.h>
5350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt
6b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy#define XT_STRING_MAX_PATTERN_SIZE 128
7b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy#define XT_STRING_MAX_ALGO_NAME_SIZE 16
8b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy
978d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Parkenum {
1078d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park	XT_STRING_FLAG_INVERT		= 0x01,
11978e27e8f8c2e49d0528c6c4ae3a56627fbe8492Jan Engelhardt	XT_STRING_FLAG_IGNORECASE	= 0x02
1278d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park};
1378d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park
14350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct xt_string_info {
15350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt	__u16 from_offset;
16350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt	__u16 to_offset;
17b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy	char	  algo[XT_STRING_MAX_ALGO_NAME_SIZE];
18b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy	char 	  pattern[XT_STRING_MAX_PATTERN_SIZE];
19350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt	__u8  patlen;
2078d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park	union {
2178d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park		struct {
22350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt			__u8  invert;
2378d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park		} v0;
2478d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park
2578d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park		struct {
26350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt			__u8  flags;
2778d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park		} v1;
2878d2d14211466f1986882ba6bdf82e6429ce78dcJoonwoo Park	} u;
29e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy
30e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy	/* Used internally by the kernel */
31b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy	struct ts_config __attribute__((aligned(8))) *config;
32b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy};
33b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy
34b8a0a100a68098c0329735b5724d9c0b425e72ebPatrick McHardy#endif /*_XT_STRING_H*/
35