text: #ifndef XT_HMARK_H_
  #define XT_HMARK_H_
  
  #include <linux/types.h>
  
  enum {
  	XT_HMARK_SADDR_MASK,
  	XT_HMARK_DADDR_MASK,
  	XT_HMARK_SPI,
  	XT_HMARK_SPI_MASK,
  	XT_HMARK_SPORT,
  	XT_HMARK_DPORT,
  	XT_HMARK_SPORT_MASK,
  	XT_HMARK_DPORT_MASK,
  	XT_HMARK_PROTO_MASK,
  	XT_HMARK_RND,
  	XT_HMARK_MODULUS,
  	XT_HMARK_OFFSET,
  	XT_HMARK_CT,
  	XT_HMARK_METHOD_L3,
  	XT_HMARK_METHOD_L3_4,
  };
  #define XT_HMARK_FLAG(flag)	(1 << flag)
  
  union hmark_ports {
  	struct {
  		__u16	src;
  		__u16	dst;
  	} p16;
  	struct {
  		__be16	src;
  		__be16	dst;
  	} b16;
  	__u32	v32;
  	__be32	b32;
  };
  
  struct xt_hmark_info {
  	union nf_inet_addr	src_mask;
  	union nf_inet_addr	dst_mask;
  	union hmark_ports	port_mask;
  	union hmark_ports	port_set;
  	__u32			flags;
  	__u16			proto_mask;
  	__u32			hashrnd;
  	__u32			hmodulus;
  	__u32			hoffset;	/* Mark offset to start from */
  };
  
  #endif /* XT_HMARK_H_ */
  