FreeBSD kernel IPv4 code
alias_db.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ack_data_record
 
struct  tcp_state
 
struct  tcp_dat
 
struct  server
 
struct  alias_link
 

Macros

#define ICMP_EXPIRE_TIME   60
 
#define UDP_EXPIRE_TIME   60
 
#define PROTO_EXPIRE_TIME   60
 
#define FRAGMENT_ID_EXPIRE_TIME   10
 
#define FRAGMENT_PTR_EXPIRE_TIME   30
 
#define TCP_EXPIRE_DEAD   10
 
#define TCP_EXPIRE_SINGLEDEAD   90
 
#define TCP_EXPIRE_INITIAL   300
 
#define TCP_EXPIRE_CONNECTED   86400
 
#define NO_DEST_PORT   1
 
#define NO_SRC_PORT   1
 
#define N_LINK_TCP_DATA   3
 
#define LINK_ICMP   IPPROTO_ICMP
 
#define LINK_UDP   IPPROTO_UDP
 
#define LINK_TCP   IPPROTO_TCP
 
#define LINK_FRAGMENT_ID   (IPPROTO_MAX + 1)
 
#define LINK_FRAGMENT_PTR   (IPPROTO_MAX + 2)
 
#define LINK_ADDR   (IPPROTO_MAX + 3)
 
#define LINK_PPTP   (IPPROTO_MAX + 4)
 
#define LINK_UNKNOWN_DEST_PORT   0x01
 
#define LINK_UNKNOWN_DEST_ADDR   0x02
 
#define LINK_PERMANENT   0x04
 
#define LINK_PARTIALLY_SPECIFIED   0x03 /* logical-or of first two bits */
 
#define LINK_UNFIREWALLED   0x08
 
#define GET_NEW_PORT_MAX_ATTEMPTS   20
 
#define fw_setfield(la, field, num)
 
#define fw_clrfield(la, field, num)
 
#define fw_tstfield(la, field, num)   ((field)[(num) - la->fireWallBaseNum])
 

Functions

static void finishoff (void)
 
static struct group_inStartPointIn (struct libalias *, struct in_addr, u_short, int, int)
 
static int SeqDiff (u_long, u_long)
 
static void InitPunchFW (struct libalias *)
 
static void UninitPunchFW (struct libalias *)
 
static void ClearFWHole (struct alias_link *)
 
static void ShowAliasStats (struct libalias *)
 
static int InitPacketAliasLog (struct libalias *)
 
static void UninitPacketAliasLog (struct libalias *)
 
void SctpShowAliasStats (struct libalias *la)
 
static int cmp_out (struct alias_link *a, struct alias_link *b)
 
 SPLAY_PROTOTYPE (splay_out, alias_link, all.out, cmp_out)
 
static int cmp_in (struct group_in *a, struct group_in *b)
 
 SPLAY_PROTOTYPE (splay_in, group_in, in, cmp_in)
 
static int GetNewPort (struct libalias *, struct alias_link *, int)
 
static u_short GetSocket (struct libalias *, u_short, int *, int)
 
static void CleanupAliasData (struct libalias *, int)
 
static void CleanupLink (struct libalias *, struct alias_link **, int)
 
static void DeleteLink (struct alias_link **, int)
 
static struct alias_linkUseLink (struct libalias *, struct alias_link *)
 
static struct alias_linkReLink (struct alias_link *, struct in_addr, struct in_addr, struct in_addr, u_short, u_short, int, int, int)
 
static struct alias_linkFindLinkOut (struct libalias *, struct in_addr, struct in_addr, u_short, u_short, int, int)
 
static struct alias_linkFindLinkIn (struct libalias *, struct in_addr, struct in_addr, u_short, u_short, int, int)
 
static u_short _RandomPort (struct libalias *la)
 
static void ClearAllFWHoles (struct libalias *la)
 

Variables

static struct in_addr const ANY_ADDR = { INADDR_ANY }
 

Macro Definition Documentation

◆ FRAGMENT_ID_EXPIRE_TIME

#define FRAGMENT_ID_EXPIRE_TIME   10

Definition at line 156 of file alias_db.h.

◆ FRAGMENT_PTR_EXPIRE_TIME

#define FRAGMENT_PTR_EXPIRE_TIME   30

Definition at line 157 of file alias_db.h.

◆ fw_clrfield

#define fw_clrfield (   la,
  field,
  num 
)
Value:
do { \
(field)[(num) - la->fireWallBaseNum] = 0; \
} /*lint -save -e717 */ while(0)/* lint -restore */

Definition at line 434 of file alias_db.h.

◆ fw_setfield

#define fw_setfield (   la,
  field,
  num 
)
Value:
do { \
(field)[(num) - la->fireWallBaseNum] = 1; \
} /*lint -save -e717 */ while(0)/* lint -restore */

Definition at line 429 of file alias_db.h.

◆ fw_tstfield

#define fw_tstfield (   la,
  field,
  num 
)    ((field)[(num) - la->fireWallBaseNum])

Definition at line 439 of file alias_db.h.

◆ GET_NEW_PORT_MAX_ATTEMPTS

#define GET_NEW_PORT_MAX_ATTEMPTS   20

Definition at line 422 of file alias_db.h.

◆ ICMP_EXPIRE_TIME

#define ICMP_EXPIRE_TIME   60

Definition at line 153 of file alias_db.h.

◆ LINK_ADDR

#define LINK_ADDR   (IPPROTO_MAX + 3)

Definition at line 274 of file alias_db.h.

◆ LINK_FRAGMENT_ID

#define LINK_FRAGMENT_ID   (IPPROTO_MAX + 1)

Definition at line 272 of file alias_db.h.

◆ LINK_FRAGMENT_PTR

#define LINK_FRAGMENT_PTR   (IPPROTO_MAX + 2)

Definition at line 273 of file alias_db.h.

◆ LINK_ICMP

#define LINK_ICMP   IPPROTO_ICMP

Definition at line 269 of file alias_db.h.

◆ LINK_PARTIALLY_SPECIFIED

#define LINK_PARTIALLY_SPECIFIED   0x03 /* logical-or of first two bits */

Definition at line 283 of file alias_db.h.

◆ LINK_PERMANENT

#define LINK_PERMANENT   0x04

Definition at line 282 of file alias_db.h.

◆ LINK_PPTP

#define LINK_PPTP   (IPPROTO_MAX + 4)

Definition at line 275 of file alias_db.h.

◆ LINK_TCP

#define LINK_TCP   IPPROTO_TCP

Definition at line 271 of file alias_db.h.

◆ LINK_UDP

#define LINK_UDP   IPPROTO_UDP

Definition at line 270 of file alias_db.h.

◆ LINK_UNFIREWALLED

#define LINK_UNFIREWALLED   0x08

Definition at line 284 of file alias_db.h.

◆ LINK_UNKNOWN_DEST_ADDR

#define LINK_UNKNOWN_DEST_ADDR   0x02

Definition at line 281 of file alias_db.h.

◆ LINK_UNKNOWN_DEST_PORT

#define LINK_UNKNOWN_DEST_PORT   0x01

Definition at line 280 of file alias_db.h.

◆ N_LINK_TCP_DATA

#define N_LINK_TCP_DATA   3

Definition at line 238 of file alias_db.h.

◆ NO_DEST_PORT

#define NO_DEST_PORT   1

Definition at line 186 of file alias_db.h.

◆ NO_SRC_PORT

#define NO_SRC_PORT   1

Definition at line 187 of file alias_db.h.

◆ PROTO_EXPIRE_TIME

#define PROTO_EXPIRE_TIME   60

Definition at line 155 of file alias_db.h.

◆ TCP_EXPIRE_CONNECTED

#define TCP_EXPIRE_CONNECTED   86400

Definition at line 179 of file alias_db.h.

◆ TCP_EXPIRE_DEAD

#define TCP_EXPIRE_DEAD   10

Definition at line 163 of file alias_db.h.

◆ TCP_EXPIRE_INITIAL

#define TCP_EXPIRE_INITIAL   300

Definition at line 174 of file alias_db.h.

◆ TCP_EXPIRE_SINGLEDEAD

#define TCP_EXPIRE_SINGLEDEAD   90

Definition at line 169 of file alias_db.h.

◆ UDP_EXPIRE_TIME

#define UDP_EXPIRE_TIME   60

Definition at line 154 of file alias_db.h.

Function Documentation

◆ _RandomPort()

static u_short _RandomPort ( struct libalias la)
static

◆ CleanupAliasData()

static void CleanupAliasData ( struct libalias ,
int   
)
static

◆ CleanupLink()

static void CleanupLink ( struct libalias ,
struct alias_link **  ,
int   
)
static

◆ ClearAllFWHoles()

static void ClearAllFWHoles ( struct libalias la)
static

◆ ClearFWHole()

static void ClearFWHole ( struct alias_link )
static

◆ cmp_in()

static int cmp_in ( struct group_in a,
struct group_in b 
)
inlinestatic

◆ cmp_out()

static int cmp_out ( struct alias_link a,
struct alias_link b 
)
inlinestatic

◆ DeleteLink()

static void DeleteLink ( struct alias_link **  ,
int   
)
static

◆ FindLinkIn()

static struct alias_link * FindLinkIn ( struct libalias ,
struct in_addr  ,
struct in_addr  ,
u_short  ,
u_short  ,
int  ,
int   
)
static

◆ FindLinkOut()

static struct alias_link * FindLinkOut ( struct libalias ,
struct in_addr  ,
struct in_addr  ,
u_short  ,
u_short  ,
int  ,
int   
)
static

◆ finishoff()

static void finishoff ( void  )
static

◆ GetNewPort()

static int GetNewPort ( struct libalias ,
struct alias_link ,
int   
)
static

◆ GetSocket()

static u_short GetSocket ( struct libalias ,
u_short  ,
int *  ,
int   
)
static

◆ InitPacketAliasLog()

static int InitPacketAliasLog ( struct libalias )
static

◆ InitPunchFW()

static void InitPunchFW ( struct libalias )
static

◆ ReLink()

static struct alias_link * ReLink ( struct alias_link ,
struct in_addr  ,
struct in_addr  ,
struct in_addr  ,
u_short  ,
u_short  ,
int  ,
int  ,
int   
)
static

◆ SctpShowAliasStats()

void SctpShowAliasStats ( struct libalias la)

Definition at line 185 of file alias_db.c.

◆ SeqDiff()

static int SeqDiff ( u_long  ,
u_long   
)
static

◆ ShowAliasStats()

static void ShowAliasStats ( struct libalias )
static

◆ SPLAY_PROTOTYPE() [1/2]

SPLAY_PROTOTYPE ( splay_in  ,
group_in  ,
in  ,
cmp_in   
)

◆ SPLAY_PROTOTYPE() [2/2]

SPLAY_PROTOTYPE ( splay_out  ,
alias_link  ,
all.  out,
cmp_out   
)

◆ StartPointIn()

static struct group_in * StartPointIn ( struct libalias ,
struct in_addr  ,
u_short  ,
int  ,
int   
)
static

◆ UninitPacketAliasLog()

static void UninitPacketAliasLog ( struct libalias )
static

◆ UninitPunchFW()

static void UninitPunchFW ( struct libalias )
static

◆ UseLink()

static struct alias_link * UseLink ( struct libalias ,
struct alias_link  
)
static

Variable Documentation

◆ ANY_ADDR