FreeBSD kernel IPv4 code
alias.h File Reference
#include <netinet/in_systm.h>
#include <netinet/in.h>
#include <netinet/ip.h>
Include dependency graph for alias.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define LIBALIAS_BUF_SIZE   128
 
#define NO_FW_PUNCH
 
#define NO_USE_SOCKETS
 
#define PKT_ALIAS_LOG   0x01
 
#define PKT_ALIAS_DENY_INCOMING   0x02
 
#define PKT_ALIAS_SAME_PORTS   0x04
 
#define PKT_ALIAS_UNREGISTERED_ONLY   0x10
 
#define PKT_ALIAS_RESET_ON_ADDR_CHANGE   0x20
 
#define PKT_ALIAS_PROXY_ONLY   0x40
 
#define PKT_ALIAS_REVERSE   0x80
 
#define PKT_ALIAS_SKIP_GLOBAL   0x200
 
#define PKT_ALIAS_UNREGISTERED_CGN   0x400
 
#define PKT_ALIAS_ERROR   -1
 
#define PKT_ALIAS_OK   1
 
#define PKT_ALIAS_IGNORED   2
 
#define PKT_ALIAS_UNRESOLVED_FRAGMENT   3
 
#define PKT_ALIAS_FOUND_HEADER_FRAGMENT   4
 

Functions

struct libaliasLibAliasInit (struct libalias *)
 
void LibAliasSetAddress (struct libalias *, struct in_addr _addr)
 
void LibAliasSetAliasPortRange (struct libalias *la, u_short port_low, u_short port_hi)
 
void LibAliasSetFWBase (struct libalias *, unsigned int _base, unsigned int _num)
 
void LibAliasSetSkinnyPort (struct libalias *, unsigned int _port)
 
unsigned int LibAliasSetMode (struct libalias *, unsigned int _flags, unsigned int _mask)
 
void LibAliasUninit (struct libalias *)
 
int LibAliasIn (struct libalias *, void *_ptr, int _maxpacketsize)
 
int LibAliasOut (struct libalias *, void *_ptr, int _maxpacketsize)
 
int LibAliasOutTry (struct libalias *, void *_ptr, int _maxpacketsize, int _create)
 
int LibAliasUnaliasOut (struct libalias *, void *_ptr, int _maxpacketsize)
 
int LibAliasAddServer (struct libalias *, struct alias_link *_lnk, struct in_addr _addr, unsigned short _port)
 
struct alias_linkLibAliasRedirectAddr (struct libalias *, struct in_addr _src_addr, struct in_addr _alias_addr)
 
int LibAliasRedirectDynamic (struct libalias *, struct alias_link *_lnk)
 
void LibAliasRedirectDelete (struct libalias *, struct alias_link *_lnk)
 
struct alias_linkLibAliasRedirectPort (struct libalias *, struct in_addr _src_addr, unsigned short _src_port, struct in_addr _dst_addr, unsigned short _dst_port, struct in_addr _alias_addr, unsigned short _alias_port, unsigned char _proto)
 
struct alias_linkLibAliasRedirectProto (struct libalias *, struct in_addr _src_addr, struct in_addr _dst_addr, struct in_addr _alias_addr, unsigned char _proto)
 
void LibAliasFragmentIn (struct libalias *, void *_ptr, void *_ptr_fragment)
 
void * LibAliasGetFragment (struct libalias *, void *_ptr)
 
int LibAliasSaveFragment (struct libalias *, void *_ptr)
 
unsigned short LibAliasInternetChecksum (struct libalias *, unsigned short *_ptr, int _nbytes)
 
void LibAliasSetTarget (struct libalias *, struct in_addr _target_addr)
 
int LibAliasProxyRule (struct libalias *, const char *_cmd)
 
int LibAliasLoadModule (char *)
 
int LibAliasUnLoadAllModule (void)
 
int LibAliasRefreshModules (void)
 
struct mbuf * m_megapullup (struct mbuf *, int)
 

Macro Definition Documentation

◆ LIBALIAS_BUF_SIZE

#define LIBALIAS_BUF_SIZE   128

Definition at line 48 of file alias.h.

◆ NO_FW_PUNCH

#define NO_FW_PUNCH

Definition at line 53 of file alias.h.

◆ NO_USE_SOCKETS

#define NO_USE_SOCKETS

Definition at line 54 of file alias.h.

◆ PKT_ALIAS_DENY_INCOMING

#define PKT_ALIAS_DENY_INCOMING   0x02

Definition at line 153 of file alias.h.

◆ PKT_ALIAS_ERROR

#define PKT_ALIAS_ERROR   -1

Definition at line 233 of file alias.h.

◆ PKT_ALIAS_FOUND_HEADER_FRAGMENT

#define PKT_ALIAS_FOUND_HEADER_FRAGMENT   4

Definition at line 237 of file alias.h.

◆ PKT_ALIAS_IGNORED

#define PKT_ALIAS_IGNORED   2

Definition at line 235 of file alias.h.

◆ PKT_ALIAS_LOG

#define PKT_ALIAS_LOG   0x01

Definition at line 147 of file alias.h.

◆ PKT_ALIAS_OK

#define PKT_ALIAS_OK   1

Definition at line 234 of file alias.h.

◆ PKT_ALIAS_PROXY_ONLY

#define PKT_ALIAS_PROXY_ONLY   0x40

Definition at line 199 of file alias.h.

◆ PKT_ALIAS_RESET_ON_ADDR_CHANGE

#define PKT_ALIAS_RESET_ON_ADDR_CHANGE   0x20

Definition at line 193 of file alias.h.

◆ PKT_ALIAS_REVERSE

#define PKT_ALIAS_REVERSE   0x80

Definition at line 205 of file alias.h.

◆ PKT_ALIAS_SAME_PORTS

#define PKT_ALIAS_SAME_PORTS   0x04

Definition at line 162 of file alias.h.

◆ PKT_ALIAS_SKIP_GLOBAL

#define PKT_ALIAS_SKIP_GLOBAL   0x200

Definition at line 222 of file alias.h.

◆ PKT_ALIAS_UNREGISTERED_CGN

#define PKT_ALIAS_UNREGISTERED_CGN   0x400

Definition at line 230 of file alias.h.

◆ PKT_ALIAS_UNREGISTERED_ONLY

#define PKT_ALIAS_UNREGISTERED_ONLY   0x10

Definition at line 184 of file alias.h.

◆ PKT_ALIAS_UNRESOLVED_FRAGMENT

#define PKT_ALIAS_UNRESOLVED_FRAGMENT   3

Definition at line 236 of file alias.h.

Function Documentation

◆ LibAliasAddServer()

int LibAliasAddServer ( struct libalias ,
struct alias_link _lnk,
struct in_addr  _addr,
unsigned short  _port 
)

◆ LibAliasFragmentIn()

void LibAliasFragmentIn ( struct libalias la,
void *  _ptr,
void *  _ptr_fragment 
)

Definition at line 1293 of file alias.c.

References DifferentialChecksum(), ip::ip_dst, ip::ip_sum, LIBALIAS_LOCK, and LIBALIAS_UNLOCK.

Here is the call graph for this function:

◆ LibAliasGetFragment()

void * LibAliasGetFragment ( struct libalias la,
void *  _ptr 
)

Definition at line 1272 of file alias.c.

References FindFragmentPtr(), GetFragmentPtr(), ip::ip_id, LIBALIAS_LOCK, LIBALIAS_UNLOCK, SetExpire(), and SetFragmentPtr().

Here is the call graph for this function:

◆ LibAliasIn()

int LibAliasIn ( struct libalias la,
void *  _ptr,
int  _maxpacketsize 
)

Definition at line 1321 of file alias.c.

References LIBALIAS_LOCK, LIBALIAS_UNLOCK, and LibAliasInLocked().

Here is the call graph for this function:

◆ LibAliasInit()

◆ LibAliasInternetChecksum()

unsigned short LibAliasInternetChecksum ( struct libalias ,
unsigned short *  _ptr,
int  _nbytes 
)

◆ LibAliasLoadModule()

int LibAliasLoadModule ( char *  )

◆ LibAliasOut()

int LibAliasOut ( struct libalias la,
void *  _ptr,
int  _maxpacketsize 
)

Definition at line 1437 of file alias.c.

References alias_link::la, LIBALIAS_LOCK, LIBALIAS_UNLOCK, and LibAliasOutLocked().

Here is the call graph for this function:

◆ LibAliasOutTry()

int LibAliasOutTry ( struct libalias la,
void *  _ptr,
int  _maxpacketsize,
int  _create 
)

Definition at line 1448 of file alias.c.

References alias_link::la, LIBALIAS_LOCK, LIBALIAS_UNLOCK, and LibAliasOutLocked().

Here is the call graph for this function:

◆ LibAliasProxyRule()

◆ LibAliasRedirectAddr()

struct alias_link * LibAliasRedirectAddr ( struct libalias la,
struct in_addr  _src_addr,
struct in_addr  _alias_addr 
)

Definition at line 1979 of file alias_db.c.

References AddLink(), alias_link::alias_addr, ANY_ADDR, alias_link::flags, alias_link::la, LIBALIAS_LOCK, LIBALIAS_UNLOCK, LINK_ADDR, LINK_PERMANENT, and alias_link::src_addr.

Here is the call graph for this function:

◆ LibAliasRedirectDelete()

void LibAliasRedirectDelete ( struct libalias la,
struct alias_link _lnk 
)

Definition at line 2025 of file alias_db.c.

References DeleteLink(), alias_link::la, LIBALIAS_LOCK, and LIBALIAS_UNLOCK.

Here is the call graph for this function:

◆ LibAliasRedirectDynamic()

int LibAliasRedirectDynamic ( struct libalias la,
struct alias_link _lnk 
)

◆ LibAliasRedirectPort()

struct alias_link * LibAliasRedirectPort ( struct libalias ,
struct in_addr  _src_addr,
unsigned short  _src_port,
struct in_addr  _dst_addr,
unsigned short  _dst_port,
struct in_addr  _alias_addr,
unsigned short  _alias_port,
unsigned char  _proto 
)

◆ LibAliasRedirectProto()

struct alias_link * LibAliasRedirectProto ( struct libalias ,
struct in_addr  _src_addr,
struct in_addr  _dst_addr,
struct in_addr  _alias_addr,
unsigned char  _proto 
)

◆ LibAliasRefreshModules()

int LibAliasRefreshModules ( void  )

Referenced by LibAliasInit().

Here is the caller graph for this function:

◆ LibAliasSaveFragment()

int LibAliasSaveFragment ( struct libalias la,
void *  _ptr 
)

Definition at line 1253 of file alias.c.

References AddFragmentPtrLink(), ip::ip_id, LIBALIAS_LOCK, LIBALIAS_UNLOCK, PKT_ALIAS_ERROR, PKT_ALIAS_OK, and SetFragmentPtr().

Here is the call graph for this function:

◆ LibAliasSetAddress()

void LibAliasSetAddress ( struct libalias la,
struct in_addr  _addr 
)

◆ LibAliasSetAliasPortRange()

void LibAliasSetAliasPortRange ( struct libalias la,
u_short  port_low,
u_short  port_hi 
)

◆ LibAliasSetFWBase()

void LibAliasSetFWBase ( struct libalias la,
unsigned int  _base,
unsigned int  _num 
)

◆ LibAliasSetMode()

unsigned int LibAliasSetMode ( struct libalias la,
unsigned int  _flags,
unsigned int  _mask 
)

Definition at line 2171 of file alias_db.c.

References InitPacketAliasLog(), InitPunchFW(), LIBALIAS_LOCK, LIBALIAS_UNLOCK, libalias::packetAliasMode, PKT_ALIAS_LOG, UninitPacketAliasLog(), and UninitPunchFW().

Here is the call graph for this function:

◆ LibAliasSetSkinnyPort()

void LibAliasSetSkinnyPort ( struct libalias la,
unsigned int  _port 
)

Definition at line 2448 of file alias_db.c.

References LIBALIAS_LOCK, LIBALIAS_UNLOCK, and libalias::skinnyPort.

◆ LibAliasSetTarget()

void LibAliasSetTarget ( struct libalias la,
struct in_addr  _target_addr 
)

Definition at line 2063 of file alias_db.c.

References alias_link::la, LIBALIAS_LOCK, LIBALIAS_UNLOCK, and libalias::targetAddress.

◆ LibAliasUnaliasOut()

◆ LibAliasUninit()

void LibAliasUninit ( struct libalias la)

Definition at line 2152 of file alias_db.c.

References AliasSctpTerm(), CleanupAliasData(), LIBALIAS_LOCK, LIBALIAS_LOCK_DESTROY, LIBALIAS_UNLOCK, UninitPacketAliasLog(), and UninitPunchFW().

Referenced by finishoff().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LibAliasUnLoadAllModule()

int LibAliasUnLoadAllModule ( void  )

◆ m_megapullup()

struct mbuf * m_megapullup ( struct mbuf *  m,
int  len 
)

Definition at line 1776 of file alias.c.