2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#ifndef __LINUX_FIB_RULES_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define __LINUX_FIB_RULES_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#include <linux/types.h>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#include <linux/rtnetlink.h>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* rule is permanent, and cannot be deleted */
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-06 11:45:39 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_PERMANENT	0x00000001
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_INVERT		0x00000002
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_UNRESOLVED	0x00000004
							 | 
						
					
						
							
								
									
										
										
										
											2009-12-03 01:25:54 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_IIF_DETACHED	0x00000008
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_DEV_DETACHED	FIB_RULE_IIF_DETACHED
							 | 
						
					
						
							
								
									
										
										
										
											2009-12-03 01:25:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_OIF_DETACHED	0x00000010
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-06 11:45:39 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* try to find source address in routing lookups */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FIB_RULE_FIND_SADDR	0x00010000
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-11-04 09:50:58 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct fib_rule_hdr {
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		family;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		dst_len;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		src_len;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		tos;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		table;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		res1;	/* reserved */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		res2;	/* reserved */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u8		action;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__u32		flags;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-11-04 09:50:58 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								enum {
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_UNSPEC,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_DST,	/* destination address */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_SRC,	/* source address */
							 | 
						
					
						
							
								
									
										
										
										
											2009-12-03 01:25:54 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_IIFNAME,	/* interface name */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FRA_IFNAME	FRA_IIFNAME
							 | 
						
					
						
							
								
									
										
										
										
											2007-03-26 17:14:15 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_GOTO,	/* target to jump to (FR_ACT_GOTO) */
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_UNUSED2,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_PRIORITY,	/* priority/preference */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_UNUSED3,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_UNUSED4,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_UNUSED5,
							 | 
						
					
						
							
								
									
										
										
										
											2006-11-09 15:22:18 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_FWMARK,	/* mark */
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FRA_FLOW,	/* flow/class id */
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-10 23:09:48 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_UNUSED6,
							 | 
						
					
						
							
								
									
										
										
										
											2013-08-02 17:19:56 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_SUPPRESS_IFGROUP,
							 | 
						
					
						
							
								
									
										
										
										
											2013-08-03 14:14:43 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_SUPPRESS_PREFIXLEN,
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-10 23:09:48 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_TABLE,	/* Extended table id */
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-25 16:10:14 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_FWMASK,	/* mask for netfilter mark */
							 | 
						
					
						
							
								
									
										
										
										
											2009-12-03 01:25:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FRA_OIFNAME,
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__FRA_MAX
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FRA_MAX (__FRA_MAX - 1)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2009-11-04 09:50:58 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								enum {
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_UNSPEC,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_TO_TBL,		/* Pass to fixed table */
							 | 
						
					
						
							
								
									
										
										
										
											2007-03-26 17:14:15 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FR_ACT_GOTO,		/* Jump to another rule */
							 | 
						
					
						
							
								
									
										
										
										
											2007-03-26 17:38:53 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									FR_ACT_NOP,		/* No operation */
							 | 
						
					
						
							
								
									
										
										
										
											2006-08-04 03:38:38 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_RES3,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_RES4,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_BLACKHOLE,	/* Drop without notification */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_UNREACHABLE,	/* Drop with ENETUNREACH */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									FR_ACT_PROHIBIT,	/* Drop with EACCES */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									__FR_ACT_MAX,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define FR_ACT_MAX (__FR_ACT_MAX - 1)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 |