FreeBSD kernel netgraph code
ng_ppp.c File Reference
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/limits.h>
#include <sys/time.h>
#include <sys/mbuf.h>
#include <sys/malloc.h>
#include <sys/endian.h>
#include <sys/errno.h>
#include <sys/ctype.h>
#include <netgraph/ng_message.h>
#include <netgraph/netgraph.h>
#include <netgraph/ng_parse.h>
#include <netgraph/ng_ppp.h>
#include <netgraph/ng_vjc.h>
Include dependency graph for ng_ppp.c:

Go to the source code of this file.

Data Structures

struct  ng_ppp_frag
 
struct  ng_ppp_link
 
struct  ng_ppp_private
 

Macros

#define M_NETGRAPH_PPP   M_NETGRAPH
 
#define PROT_VALID(p)   (((p) & 0x0101) == 0x0001)
 
#define PROT_COMPRESSABLE(p)   (((p) & 0xff00) == 0x0000)
 
#define PROT_ATALK   0x0029
 
#define PROT_COMPD   0x00fd
 
#define PROT_CRYPTD   0x0053
 
#define PROT_IP   0x0021
 
#define PROT_IPV6   0x0057
 
#define PROT_IPX   0x002b
 
#define PROT_LCP   0xc021
 
#define PROT_MP   0x003d
 
#define PROT_VJCOMP   0x002d
 
#define PROT_VJUNCOMP   0x002f
 
#define MP_INITIAL_SEQ   0 /* per RFC 1990 */
 
#define MP_MIN_LINK_MRU   32
 
#define MP_SHORT_SEQ_MASK   0x00000fff /* short seq # mask */
 
#define MP_SHORT_SEQ_HIBIT   0x00000800 /* short seq # high bit */
 
#define MP_SHORT_FIRST_FLAG   0x00008000 /* first fragment in frame */
 
#define MP_SHORT_LAST_FLAG   0x00004000 /* last fragment in frame */
 
#define MP_LONG_SEQ_MASK   0x00ffffff /* long seq # mask */
 
#define MP_LONG_SEQ_HIBIT   0x00800000 /* long seq # high bit */
 
#define MP_LONG_FIRST_FLAG   0x80000000 /* first fragment in frame */
 
#define MP_LONG_LAST_FLAG   0x40000000 /* last fragment in frame */
 
#define MP_NOSEQ   0x7fffffff /* impossible sequence number */
 
#define MP_SHORT_EXTEND(s)
 
#define MP_LONG_EXTEND(s)
 
#define MP_SHORT_SEQ_DIFF(x, y)   MP_SHORT_EXTEND((x) - (y))
 
#define MP_LONG_SEQ_DIFF(x, y)   MP_LONG_EXTEND((x) - (y))
 
#define MP_RECV_SEQ_DIFF(priv, x, y)
 
#define MP_NEXT_RECV_SEQ(priv, seq)
 
#define MP_MIN_FRAG_LEN   32
 
#define MP_MAX_QUEUE_LEN   128
 
#define MP_FRAGTIMER_INTERVAL   (hz/2)
 
#define MP_AVERAGE_LINK_OVERHEAD   16
 
#define HOOK_INDEX_MAX   13
 
#define HOOK_INDEX_ATALK   0
 
#define HOOK_INDEX_BYPASS   1
 
#define HOOK_INDEX_COMPRESS   2
 
#define HOOK_INDEX_ENCRYPT   3
 
#define HOOK_INDEX_DECOMPRESS   4
 
#define HOOK_INDEX_DECRYPT   5
 
#define HOOK_INDEX_INET   6
 
#define HOOK_INDEX_IPX   7
 
#define HOOK_INDEX_VJC_COMP   8
 
#define HOOK_INDEX_VJC_IP   9
 
#define HOOK_INDEX_VJC_UNCOMP   10
 
#define HOOK_INDEX_VJC_VJIP   11
 
#define HOOK_INDEX_IPV6   12
 
#define ERROUT(x)   do { error = (x); goto done; } while (0)
 

Typedefs

typedef struct ng_ppp_privatepriv_p
 

Functions

static int ng_ppp_proto_recv (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static int ng_ppp_hcomp_xmit (node_p node, item_p item, uint16_t proto)
 
static int ng_ppp_hcomp_recv (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static int ng_ppp_comp_xmit (node_p node, item_p item, uint16_t proto)
 
static int ng_ppp_comp_recv (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static int ng_ppp_crypt_xmit (node_p node, item_p item, uint16_t proto)
 
static int ng_ppp_crypt_recv (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static int ng_ppp_mp_xmit (node_p node, item_p item, uint16_t proto)
 
static int ng_ppp_mp_recv (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static int ng_ppp_link_xmit (node_p node, item_p item, uint16_t proto, uint16_t linkNum, int plen)
 
static int ng_ppp_bypass (node_p node, item_p item, uint16_t proto, uint16_t linkNum)
 
static void ng_ppp_bump_mseq (node_p node, int32_t new_mseq)
 
static int ng_ppp_frag_drop (node_p node)
 
static int ng_ppp_check_packet (node_p node)
 
static void ng_ppp_get_packet (node_p node, struct mbuf **mp)
 
static int ng_ppp_frag_process (node_p node, item_p oitem)
 
static int ng_ppp_frag_trim (node_p node)
 
static void ng_ppp_frag_timeout (node_p node, hook_p hook, void *arg1, int arg2)
 
static void ng_ppp_frag_checkstale (node_p node)
 
static void ng_ppp_frag_reset (node_p node)
 
static void ng_ppp_mp_strategy (node_p node, int len, int *distrib)
 
static int ng_ppp_intcmp (void *latency, const void *v1, const void *v2)
 
static struct mbuf * ng_ppp_addproto (struct mbuf *m, uint16_t proto, int compOK)
 
static struct mbuf * ng_ppp_cutproto (struct mbuf *m, uint16_t *proto)
 
static struct mbuf * ng_ppp_prepend (struct mbuf *m, const void *buf, int len)
 
static int ng_ppp_config_valid (node_p node, const struct ng_ppp_node_conf *newConf)
 
static void ng_ppp_update (node_p node, int newConf)
 
static void ng_ppp_start_frag_timer (node_p node)
 
static void ng_ppp_stop_frag_timer (node_p node)
 
 NETGRAPH_INIT (ppp, &ng_ppp_typestruct)
 
static int ng_ppp_constructor (node_p node)
 
static int ng_ppp_newhook (node_p node, hook_p hook, const char *name)
 
static int ng_ppp_rcvmsg (node_p node, item_p item, hook_p lasthook)
 
static int ng_ppp_shutdown (node_p node)
 
static int ng_ppp_disconnect (hook_p hook)
 
static int ng_ppp_rcvdata_inet (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_inet_fast (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_ipv6 (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_atalk (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_ipx (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_bypass (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_vjc_comp (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_vjc_uncomp (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_vjc_vjip (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_vjc_ip (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_compress (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_decompress (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_encrypt (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata_decrypt (hook_p hook, item_p item)
 
static int ng_ppp_rcvdata (hook_p hook, item_p item)
 

Variables

static ng_constructor_t ng_ppp_constructor
 
static ng_rcvmsg_t ng_ppp_rcvmsg
 
static ng_shutdown_t ng_ppp_shutdown
 
static ng_newhook_t ng_ppp_newhook
 
static ng_rcvdata_t ng_ppp_rcvdata
 
static ng_disconnect_t ng_ppp_disconnect
 
static ng_rcvdata_t ng_ppp_rcvdata_inet
 
static ng_rcvdata_t ng_ppp_rcvdata_inet_fast
 
static ng_rcvdata_t ng_ppp_rcvdata_ipv6
 
static ng_rcvdata_t ng_ppp_rcvdata_ipx
 
static ng_rcvdata_t ng_ppp_rcvdata_atalk
 
static ng_rcvdata_t ng_ppp_rcvdata_bypass
 
static ng_rcvdata_t ng_ppp_rcvdata_vjc_ip
 
static ng_rcvdata_t ng_ppp_rcvdata_vjc_comp
 
static ng_rcvdata_t ng_ppp_rcvdata_vjc_uncomp
 
static ng_rcvdata_t ng_ppp_rcvdata_vjc_vjip
 
static ng_rcvdata_t ng_ppp_rcvdata_compress
 
static ng_rcvdata_t ng_ppp_rcvdata_decompress
 
static ng_rcvdata_t ng_ppp_rcvdata_encrypt
 
static ng_rcvdata_t ng_ppp_rcvdata_decrypt
 
struct {
   char *const   name
 
   ng_rcvdata_t *   fn
 
ng_ppp_hook_names []
 
static const struct ng_parse_fixedarray_info ng_ppp_rseq_array_info
 
static const struct ng_parse_type ng_ppp_rseq_array_type
 
static const struct ng_parse_struct_field ng_ppp_mp_state_type_fields [] = NG_PPP_MP_STATE_TYPE_INFO(&ng_ppp_rseq_array_type)
 
static const struct ng_parse_type ng_ppp_mp_state_type
 
static const struct ng_parse_struct_field ng_ppp_link_type_fields [] = NG_PPP_LINK_TYPE_INFO
 
static const struct ng_parse_type ng_ppp_link_type
 
static const struct ng_parse_struct_field ng_ppp_bund_type_fields [] = NG_PPP_BUND_TYPE_INFO
 
static const struct ng_parse_type ng_ppp_bund_type
 
static const struct ng_parse_fixedarray_info ng_ppp_array_info
 
static const struct ng_parse_type ng_ppp_link_array_type
 
static const struct ng_parse_struct_field ng_ppp_conf_type_fields [] = NG_PPP_CONFIG_TYPE_INFO(&ng_ppp_bund_type, &ng_ppp_link_array_type)
 
static const struct ng_parse_type ng_ppp_conf_type
 
static const struct ng_parse_struct_field ng_ppp_stats_type_fields [] = NG_PPP_STATS_TYPE_INFO
 
static const struct ng_parse_type ng_ppp_stats_type
 
static const struct ng_parse_struct_field ng_ppp_stats64_type_fields [] = NG_PPP_STATS64_TYPE_INFO
 
static const struct ng_parse_type ng_ppp_stats64_type
 
static const struct ng_cmdlist ng_ppp_cmds []
 
static struct ng_type ng_ppp_typestruct
 
static const uint8_t ng_ppp_acf [2] = { 0xff, 0x03 }
 
static const struct timeval ng_ppp_max_staleness = { 2, 0 }
 

Macro Definition Documentation

◆ ERROUT

#define ERROUT (   x)    do { error = (x); goto done; } while (0)

Definition at line 480 of file ng_ppp.c.

◆ HOOK_INDEX_ATALK

#define HOOK_INDEX_ATALK   0

◆ HOOK_INDEX_BYPASS

#define HOOK_INDEX_BYPASS   1

◆ HOOK_INDEX_COMPRESS

#define HOOK_INDEX_COMPRESS   2

◆ HOOK_INDEX_DECOMPRESS

#define HOOK_INDEX_DECOMPRESS   4

◆ HOOK_INDEX_DECRYPT

#define HOOK_INDEX_DECRYPT   5

◆ HOOK_INDEX_ENCRYPT

#define HOOK_INDEX_ENCRYPT   3

◆ HOOK_INDEX_INET

#define HOOK_INDEX_INET   6

◆ HOOK_INDEX_IPV6

#define HOOK_INDEX_IPV6   12

◆ HOOK_INDEX_IPX

#define HOOK_INDEX_IPX   7

◆ HOOK_INDEX_MAX

#define HOOK_INDEX_MAX   13

Definition at line 186 of file ng_ppp.c.

◆ HOOK_INDEX_VJC_COMP

#define HOOK_INDEX_VJC_COMP   8

◆ HOOK_INDEX_VJC_IP

#define HOOK_INDEX_VJC_IP   9

◆ HOOK_INDEX_VJC_UNCOMP

#define HOOK_INDEX_VJC_UNCOMP   10

◆ HOOK_INDEX_VJC_VJIP

#define HOOK_INDEX_VJC_VJIP   11

◆ M_NETGRAPH_PPP

#define M_NETGRAPH_PPP   M_NETGRAPH

Definition at line 115 of file ng_ppp.c.

◆ MP_AVERAGE_LINK_OVERHEAD

#define MP_AVERAGE_LINK_OVERHEAD   16

Definition at line 183 of file ng_ppp.c.

◆ MP_FRAGTIMER_INTERVAL

#define MP_FRAGTIMER_INTERVAL   (hz/2)

Definition at line 180 of file ng_ppp.c.

◆ MP_INITIAL_SEQ

#define MP_INITIAL_SEQ   0 /* per RFC 1990 */

Definition at line 134 of file ng_ppp.c.

◆ MP_LONG_EXTEND

#define MP_LONG_EXTEND (   s)
Value:
(((s) & MP_LONG_SEQ_HIBIT) ? \
((s) | ~MP_LONG_SEQ_MASK) \
: ((s) & MP_LONG_SEQ_MASK))
#define MP_LONG_SEQ_HIBIT
Definition: ng_ppp.c:143
#define MP_LONG_SEQ_MASK
Definition: ng_ppp.c:142

Definition at line 153 of file ng_ppp.c.

◆ MP_LONG_FIRST_FLAG

#define MP_LONG_FIRST_FLAG   0x80000000 /* first fragment in frame */

Definition at line 144 of file ng_ppp.c.

◆ MP_LONG_LAST_FLAG

#define MP_LONG_LAST_FLAG   0x40000000 /* last fragment in frame */

Definition at line 145 of file ng_ppp.c.

◆ MP_LONG_SEQ_DIFF

#define MP_LONG_SEQ_DIFF (   x,
 
)    MP_LONG_EXTEND((x) - (y))

Definition at line 160 of file ng_ppp.c.

◆ MP_LONG_SEQ_HIBIT

#define MP_LONG_SEQ_HIBIT   0x00800000 /* long seq # high bit */

Definition at line 143 of file ng_ppp.c.

◆ MP_LONG_SEQ_MASK

#define MP_LONG_SEQ_MASK   0x00ffffff /* long seq # mask */

Definition at line 142 of file ng_ppp.c.

◆ MP_MAX_QUEUE_LEN

#define MP_MAX_QUEUE_LEN   128

Definition at line 177 of file ng_ppp.c.

◆ MP_MIN_FRAG_LEN

#define MP_MIN_FRAG_LEN   32

Definition at line 174 of file ng_ppp.c.

◆ MP_MIN_LINK_MRU

#define MP_MIN_LINK_MRU   32

Definition at line 135 of file ng_ppp.c.

◆ MP_NEXT_RECV_SEQ

#define MP_NEXT_RECV_SEQ (   priv,
  seq 
)
Value:
((priv)->conf.recvShortSeq ? \
MP_SHORT_EXTEND((seq) + 1) : \
MP_LONG_EXTEND((seq) + 1))
#define MP_SHORT_EXTEND(s)
Definition: ng_ppp.c:150
#define MP_LONG_EXTEND(s)
Definition: ng_ppp.c:153
Definition: ng_sscfu.c:66

Definition at line 168 of file ng_ppp.c.

◆ MP_NOSEQ

#define MP_NOSEQ   0x7fffffff /* impossible sequence number */

Definition at line 147 of file ng_ppp.c.

◆ MP_RECV_SEQ_DIFF

#define MP_RECV_SEQ_DIFF (   priv,
  x,
 
)
Value:
((priv)->conf.recvShortSeq ? \
MP_SHORT_SEQ_DIFF((x), (y)) : \
MP_LONG_SEQ_DIFF((x), (y)))
#define MP_SHORT_SEQ_DIFF(x, y)
Definition: ng_ppp.c:159

Definition at line 162 of file ng_ppp.c.

◆ MP_SHORT_EXTEND

#define MP_SHORT_EXTEND (   s)
Value:
(((s) & MP_SHORT_SEQ_HIBIT) ? \
((s) | ~MP_SHORT_SEQ_MASK) \
: ((s) & MP_SHORT_SEQ_MASK))
#define MP_SHORT_SEQ_HIBIT
Definition: ng_ppp.c:138
#define MP_SHORT_SEQ_MASK
Definition: ng_ppp.c:137

Definition at line 150 of file ng_ppp.c.

◆ MP_SHORT_FIRST_FLAG

#define MP_SHORT_FIRST_FLAG   0x00008000 /* first fragment in frame */

Definition at line 139 of file ng_ppp.c.

◆ MP_SHORT_LAST_FLAG

#define MP_SHORT_LAST_FLAG   0x00004000 /* last fragment in frame */

Definition at line 140 of file ng_ppp.c.

◆ MP_SHORT_SEQ_DIFF

#define MP_SHORT_SEQ_DIFF (   x,
 
)    MP_SHORT_EXTEND((x) - (y))

Definition at line 159 of file ng_ppp.c.

◆ MP_SHORT_SEQ_HIBIT

#define MP_SHORT_SEQ_HIBIT   0x00000800 /* short seq # high bit */

Definition at line 138 of file ng_ppp.c.

◆ MP_SHORT_SEQ_MASK

#define MP_SHORT_SEQ_MASK   0x00000fff /* short seq # mask */

Definition at line 137 of file ng_ppp.c.

◆ PROT_ATALK

#define PROT_ATALK   0x0029

Definition at line 122 of file ng_ppp.c.

◆ PROT_COMPD

#define PROT_COMPD   0x00fd

Definition at line 123 of file ng_ppp.c.

◆ PROT_COMPRESSABLE

#define PROT_COMPRESSABLE (   p)    (((p) & 0xff00) == 0x0000)

Definition at line 119 of file ng_ppp.c.

◆ PROT_CRYPTD

#define PROT_CRYPTD   0x0053

Definition at line 124 of file ng_ppp.c.

◆ PROT_IP

#define PROT_IP   0x0021

Definition at line 125 of file ng_ppp.c.

◆ PROT_IPV6

#define PROT_IPV6   0x0057

Definition at line 126 of file ng_ppp.c.

◆ PROT_IPX

#define PROT_IPX   0x002b

Definition at line 127 of file ng_ppp.c.

◆ PROT_LCP

#define PROT_LCP   0xc021

Definition at line 128 of file ng_ppp.c.

◆ PROT_MP

#define PROT_MP   0x003d

Definition at line 129 of file ng_ppp.c.

◆ PROT_VALID

#define PROT_VALID (   p)    (((p) & 0x0101) == 0x0001)

Definition at line 118 of file ng_ppp.c.

◆ PROT_VJCOMP

#define PROT_VJCOMP   0x002d

Definition at line 130 of file ng_ppp.c.

◆ PROT_VJUNCOMP

#define PROT_VJUNCOMP   0x002f

Definition at line 131 of file ng_ppp.c.

Typedef Documentation

◆ priv_p

typedef struct ng_ppp_private* priv_p

Definition at line 231 of file ng_ppp.c.

Function Documentation

◆ NETGRAPH_INIT()

NETGRAPH_INIT ( ppp  ,
ng_ppp_typestruct 
)

◆ ng_ppp_addproto()

static struct mbuf * ng_ppp_addproto ( struct mbuf *  m,
uint16_t  proto,
int  compOK 
)
static

Definition at line 2418 of file ng_ppp.c.

References ng_ppp_prepend(), and PROT_COMPRESSABLE.

Referenced by ng_ppp_comp_recv(), ng_ppp_comp_xmit(), ng_ppp_crypt_xmit(), ng_ppp_link_xmit(), and ng_ppp_mp_xmit().

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

◆ ng_ppp_bump_mseq()

static void ng_ppp_bump_mseq ( node_p  node,
int32_t  new_mseq 
)
static

Definition at line 1649 of file ng_ppp.c.

References MP_RECV_SEQ_DIFF, NG_NODE_PRIVATE, and ng_ppp_link::seq.

Referenced by ng_ppp_frag_drop(), and ng_ppp_get_packet().

Here is the caller graph for this function:

◆ ng_ppp_bypass()

static int ng_ppp_bypass ( node_p  node,
item_p  item,
uint16_t  proto,
uint16_t  linkNum 
)
static

Definition at line 891 of file ng_ppp.c.

References HOOK_INDEX_BYPASS, NG_FREE_ITEM, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_prepend(), NGI_GET_M, and NGI_M.

Referenced by ng_ppp_comp_recv(), ng_ppp_crypt_recv(), ng_ppp_proto_recv(), and ng_ppp_rcvdata().

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

◆ ng_ppp_check_packet()

static int ng_ppp_check_packet ( node_p  node)
static

Definition at line 1673 of file ng_ppp.c.

References ng_ppp_frag::first, ng_ppp_frag::last, MP_NEXT_RECV_SEQ, MP_RECV_SEQ_DIFF, NG_NODE_PRIVATE, and ng_ppp_frag::seq.

Referenced by ng_ppp_frag_process().

Here is the caller graph for this function:

◆ ng_ppp_comp_recv()

static int ng_ppp_comp_recv ( node_p  node,
item_p  item,
uint16_t  proto,
uint16_t  linkNum 
)
static

Definition at line 1152 of file ng_ppp.c.

References HOOK_INDEX_DECOMPRESS, NG_FREE_ITEM, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_addproto(), ng_ppp_bypass(), NG_PPP_DECOMPRESS_FULL, ng_ppp_hcomp_recv(), NGI_GET_M, NGI_M, and PROT_COMPD.

Referenced by ng_ppp_crypt_recv(), and ng_ppp_rcvdata_decrypt().

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

◆ ng_ppp_comp_xmit()

static int ng_ppp_comp_xmit ( node_p  node,
item_p  item,
uint16_t  proto 
)
static

Definition at line 1087 of file ng_ppp.c.

References HOOK_INDEX_COMPRESS, NG_FREE_ITEM, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_addproto(), ng_ppp_crypt_xmit(), NGI_GET_M, NGI_M, PROT_COMPD, and PROT_CRYPTD.

Referenced by ng_ppp_hcomp_xmit(), ng_ppp_rcvdata_vjc_comp(), ng_ppp_rcvdata_vjc_uncomp(), and ng_ppp_rcvdata_vjc_vjip().

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

◆ ng_ppp_config_valid()

◆ ng_ppp_constructor()

static int ng_ppp_constructor ( node_p  node)
static

◆ ng_ppp_crypt_recv()

static int ng_ppp_crypt_recv ( node_p  node,
item_p  item,
uint16_t  proto,
uint16_t  linkNum 
)
static

Definition at line 1262 of file ng_ppp.c.

References HOOK_INDEX_DECRYPT, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_bypass(), ng_ppp_comp_recv(), and PROT_CRYPTD.

Referenced by ng_ppp_frag_checkstale(), ng_ppp_frag_process(), and ng_ppp_mp_recv().

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

◆ ng_ppp_crypt_xmit()

static int ng_ppp_crypt_xmit ( node_p  node,
item_p  item,
uint16_t  proto 
)
static

Definition at line 1219 of file ng_ppp.c.

References HOOK_INDEX_ENCRYPT, NG_FREE_ITEM, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_addproto(), ng_ppp_mp_xmit(), NGI_GET_M, NGI_M, and PROT_CRYPTD.

Referenced by ng_ppp_comp_xmit(), and ng_ppp_rcvdata_compress().

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

◆ ng_ppp_cutproto()

static struct mbuf * ng_ppp_cutproto ( struct mbuf *  m,
uint16_t *  proto 
)
static

Definition at line 2435 of file ng_ppp.c.

References PROT_VALID.

Referenced by ng_ppp_frag_checkstale(), ng_ppp_frag_process(), ng_ppp_rcvdata(), ng_ppp_rcvdata_compress(), ng_ppp_rcvdata_decompress(), and ng_ppp_rcvdata_decrypt().

Here is the caller graph for this function:

◆ ng_ppp_disconnect()

static int ng_ppp_disconnect ( hook_p  hook)
static

Definition at line 757 of file ng_ppp.c.

References NG_HOOK_NODE, NG_HOOK_PRIVATE, NG_NODE_IS_VALID, NG_NODE_NUMHOOKS, NG_NODE_PRIVATE, ng_ppp_update(), and ng_rmnode_self().

Here is the call graph for this function:

◆ ng_ppp_frag_checkstale()

static void ng_ppp_frag_checkstale ( node_p  node)
static

◆ ng_ppp_frag_drop()

static int ng_ppp_frag_drop ( node_p  node)
static

Definition at line 1793 of file ng_ppp.c.

References ng_ppp_frag::data, NG_FREE_M, NG_NODE_PRIVATE, ng_ppp_bump_mseq(), and ng_ppp_frag::seq.

Referenced by ng_ppp_frag_process().

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

◆ ng_ppp_frag_process()

static int ng_ppp_frag_process ( node_p  node,
item_p  oitem 
)
static

Definition at line 1824 of file ng_ppp.c.

References NG_FREE_ITEM, NG_FREE_M, NG_NODE_PRIVATE, NG_NOFLAGS, ng_package_data(), NG_PPP_BUNDLE_LINKNUM, ng_ppp_check_packet(), ng_ppp_crypt_recv(), ng_ppp_cutproto(), ng_ppp_frag_drop(), ng_ppp_frag_trim(), ng_ppp_get_packet(), NGI_M, and PROT_VALID.

Referenced by ng_ppp_mp_recv().

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

◆ ng_ppp_frag_reset()

static void ng_ppp_frag_reset ( node_p  node)
static

Definition at line 2610 of file ng_ppp.c.

References ng_ppp_frag::data, NG_FREE_M, and NG_NODE_PRIVATE.

Referenced by ng_ppp_shutdown(), and ng_ppp_update().

Here is the caller graph for this function:

◆ ng_ppp_frag_timeout()

static void ng_ppp_frag_timeout ( node_p  node,
hook_p  hook,
void *  arg1,
int  arg2 
)
static

Definition at line 1971 of file ng_ppp.c.

References NG_NODE_NOT_VALID, ng_ppp_frag_checkstale(), and ng_ppp_start_frag_timer().

Referenced by ng_ppp_start_frag_timer().

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

◆ ng_ppp_frag_trim()

static int ng_ppp_frag_trim ( node_p  node)
static

Definition at line 1744 of file ng_ppp.c.

References ng_ppp_frag::data, ng_ppp_frag::first, ng_ppp_frag::last, MP_NEXT_RECV_SEQ, MP_RECV_SEQ_DIFF, NG_FREE_M, NG_NODE_PRIVATE, and ng_ppp_frag::seq.

Referenced by ng_ppp_frag_process().

Here is the caller graph for this function:

◆ ng_ppp_get_packet()

static void ng_ppp_get_packet ( node_p  node,
struct mbuf **  mp 
)
static

Definition at line 1706 of file ng_ppp.c.

References ng_ppp_frag::data, ng_ppp_frag::first, ng_ppp_frag::last, NG_NODE_PRIVATE, ng_ppp_bump_mseq(), and ng_ppp_frag::seq.

Referenced by ng_ppp_frag_checkstale(), and ng_ppp_frag_process().

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

◆ ng_ppp_hcomp_recv()

static int ng_ppp_hcomp_recv ( node_p  node,
item_p  item,
uint16_t  proto,
uint16_t  linkNum 
)
static

Definition at line 1038 of file ng_ppp.c.

References HOOK_INDEX_VJC_COMP, HOOK_INDEX_VJC_UNCOMP, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_proto_recv(), PROT_VJCOMP, and PROT_VJUNCOMP.

Referenced by ng_ppp_comp_recv(), and ng_ppp_rcvdata_decompress().

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

◆ ng_ppp_hcomp_xmit()

static int ng_ppp_hcomp_xmit ( node_p  node,
item_p  item,
uint16_t  proto 
)
static

Definition at line 972 of file ng_ppp.c.

References HOOK_INDEX_VJC_IP, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_comp_xmit(), and PROT_IP.

Referenced by ng_ppp_rcvdata_atalk(), ng_ppp_rcvdata_bypass(), ng_ppp_rcvdata_inet(), ng_ppp_rcvdata_ipv6(), and ng_ppp_rcvdata_ipx().

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

◆ ng_ppp_intcmp()

static int ng_ppp_intcmp ( void *  latency,
const void *  v1,
const void *  v2 
)
static

Definition at line 2406 of file ng_ppp.c.

References ng_ppp_link::latency.

Referenced by ng_ppp_mp_strategy().

Here is the caller graph for this function:

◆ ng_ppp_link_xmit()

◆ ng_ppp_mp_recv()

◆ ng_ppp_mp_strategy()

static void ng_ppp_mp_strategy ( node_p  node,
int  len,
int *  distrib 
)
static

Definition at line 2262 of file ng_ppp.c.

References ng_ppp_link_conf::bandwidth, ng_ppp_link::bytesInQueue, ng_ppp_link::conf, ng_ppp_link::lastWrite, ng_ppp_link::latency, NG_NODE_PRIVATE, ng_ppp_intcmp(), and NG_PPP_MAX_LINKS.

Referenced by ng_ppp_mp_xmit().

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

◆ ng_ppp_mp_xmit()

◆ ng_ppp_newhook()

static int ng_ppp_newhook ( node_p  node,
hook_p  hook,
const char *  name 
)
static

Definition at line 520 of file ng_ppp.c.

References fn, name, NG_HOOK_SET_PRIVATE, NG_HOOK_SET_RCVDATA, NG_NODE_PRIVATE, NG_PPP_HOOK_LINK_PREFIX, ng_ppp_hook_names, NG_PPP_MAX_LINKS, and ng_ppp_update().

Here is the call graph for this function:

◆ ng_ppp_prepend()

static struct mbuf * ng_ppp_prepend ( struct mbuf *  m,
const void *  buf,
int  len 
)
static

Definition at line 2460 of file ng_ppp.c.

Referenced by ng_ppp_addproto(), ng_ppp_bypass(), ng_ppp_link_xmit(), and ng_ppp_mp_xmit().

Here is the caller graph for this function:

◆ ng_ppp_proto_recv()

static int ng_ppp_proto_recv ( node_p  node,
item_p  item,
uint16_t  proto,
uint16_t  linkNum 
)
static

Definition at line 920 of file ng_ppp.c.

References HOOK_INDEX_ATALK, HOOK_INDEX_INET, HOOK_INDEX_IPV6, HOOK_INDEX_IPX, NG_FREE_ITEM, NG_FWD_ITEM_HOOK, NG_NODE_PRIVATE, ng_ppp_bypass(), NGI_GET_M, NGI_M, PROT_ATALK, PROT_IP, PROT_IPV6, and PROT_IPX.

Referenced by ng_ppp_hcomp_recv(), and ng_ppp_rcvdata_vjc_ip().

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

◆ ng_ppp_rcvdata()

◆ ng_ppp_rcvdata_atalk()

static int ng_ppp_rcvdata_atalk ( hook_p  hook,
item_p  item 
)
static

Definition at line 831 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_hcomp_xmit(), and PROT_ATALK.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_bypass()

static int ng_ppp_rcvdata_bypass ( hook_p  hook,
item_p  item 
)
static

Definition at line 863 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_PPP_BUNDLE_LINKNUM, ng_ppp_hcomp_xmit(), ng_ppp_link_xmit(), NGI_GET_M, and NGI_M.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_compress()

static int ng_ppp_rcvdata_compress ( hook_p  hook,
item_p  item 
)
static

Definition at line 1118 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, NG_PPP_COMPRESS_FULL, NG_PPP_COMPRESS_NONE, ng_ppp_crypt_xmit(), ng_ppp_cutproto(), NGI_GET_M, NGI_M, PROT_COMPD, and PROT_VALID.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_decompress()

static int ng_ppp_rcvdata_decompress ( hook_p  hook,
item_p  item 
)
static

Definition at line 1189 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, NG_PPP_BUNDLE_LINKNUM, ng_ppp_cutproto(), ng_ppp_hcomp_recv(), NGI_GET_M, NGI_M, and PROT_VALID.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_decrypt()

static int ng_ppp_rcvdata_decrypt ( hook_p  hook,
item_p  item 
)
static

Definition at line 1289 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, NG_PPP_BUNDLE_LINKNUM, ng_ppp_comp_recv(), ng_ppp_cutproto(), NGI_GET_M, NGI_M, and PROT_VALID.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_encrypt()

static int ng_ppp_rcvdata_encrypt ( hook_p  hook,
item_p  item 
)
static

Definition at line 1249 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_mp_xmit(), and PROT_CRYPTD.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_inet()

static int ng_ppp_rcvdata_inet ( hook_p  hook,
item_p  item 
)
static

Definition at line 786 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_hcomp_xmit(), and PROT_IP.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_inet_fast()

static int ng_ppp_rcvdata_inet_fast ( hook_p  hook,
item_p  item 
)
static

Definition at line 802 of file ng_ppp.c.

References NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_link_xmit(), NGI_M, and PROT_IP.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_ipv6()

static int ng_ppp_rcvdata_ipv6 ( hook_p  hook,
item_p  item 
)
static

Definition at line 815 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_hcomp_xmit(), and PROT_IPV6.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_ipx()

static int ng_ppp_rcvdata_ipx ( hook_p  hook,
item_p  item 
)
static

Definition at line 847 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_hcomp_xmit(), and PROT_IPX.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_vjc_comp()

static int ng_ppp_rcvdata_vjc_comp ( hook_p  hook,
item_p  item 
)
static

Definition at line 993 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_comp_xmit(), and PROT_VJCOMP.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_vjc_ip()

static int ng_ppp_rcvdata_vjc_ip ( hook_p  hook,
item_p  item 
)
static

Definition at line 1070 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, NG_PPP_BUNDLE_LINKNUM, ng_ppp_proto_recv(), and PROT_IP.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_vjc_uncomp()

static int ng_ppp_rcvdata_vjc_uncomp ( hook_p  hook,
item_p  item 
)
static

Definition at line 1009 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_comp_xmit(), and PROT_VJUNCOMP.

Here is the call graph for this function:

◆ ng_ppp_rcvdata_vjc_vjip()

static int ng_ppp_rcvdata_vjc_vjip ( hook_p  hook,
item_p  item 
)
static

Definition at line 1025 of file ng_ppp.c.

References NG_FREE_ITEM, NG_HOOK_NODE, NG_NODE_PRIVATE, ng_ppp_comp_xmit(), and PROT_IP.

Here is the call graph for this function:

◆ ng_ppp_rcvmsg()

◆ ng_ppp_shutdown()

static int ng_ppp_shutdown ( node_p  node)
static

Definition at line 735 of file ng_ppp.c.

References M_NETGRAPH_PPP, NG_NODE_PRIVATE, NG_NODE_SET_PRIVATE, NG_NODE_UNREF, ng_ppp_frag_reset(), and ng_ppp_stop_frag_timer().

Here is the call graph for this function:

◆ ng_ppp_start_frag_timer()

static void ng_ppp_start_frag_timer ( node_p  node)
static

Definition at line 2627 of file ng_ppp.c.

References MP_FRAGTIMER_INTERVAL, ng_callout(), NG_NODE_PRIVATE, and ng_ppp_frag_timeout().

Referenced by ng_ppp_frag_timeout(), and ng_ppp_update().

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

◆ ng_ppp_stop_frag_timer()

static void ng_ppp_stop_frag_timer ( node_p  node)
static

Definition at line 2640 of file ng_ppp.c.

References NG_NODE_PRIVATE, and ng_uncallout().

Referenced by ng_ppp_shutdown(), and ng_ppp_update().

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

◆ ng_ppp_update()

Variable Documentation

◆ fn

Definition at line 262 of file ng_ppp.c.

Referenced by ng_ppp_newhook(), and ng_send_fn2().

◆ name

◆ ng_ppp_acf

const uint8_t ng_ppp_acf[2] = { 0xff, 0x03 }
static

Definition at line 475 of file ng_ppp.c.

Referenced by ng_ppp_link_xmit().

◆ ng_ppp_array_info

const struct ng_parse_fixedarray_info ng_ppp_array_info
static
Initial value:
= {
}
static const struct ng_parse_type ng_ppp_link_type
Definition: ng_ppp.c:354
#define NG_PPP_MAX_LINKS
Definition: ng_ppp.h:55

Definition at line 368 of file ng_ppp.c.

◆ ng_ppp_bund_type

const struct ng_parse_type ng_ppp_bund_type
static
Initial value:
= {
}
const struct ng_parse_type ng_parse_struct_type
Definition: ng_parse.c:222
static const struct ng_parse_struct_field ng_ppp_bund_type_fields[]
Definition: ng_ppp.c:361

Definition at line 362 of file ng_ppp.c.

◆ ng_ppp_bund_type_fields

const struct ng_parse_struct_field ng_ppp_bund_type_fields[] = NG_PPP_BUND_TYPE_INFO
static

Definition at line 360 of file ng_ppp.c.

◆ ng_ppp_cmds

const struct ng_cmdlist ng_ppp_cmds[]
static

Definition at line 400 of file ng_ppp.c.

◆ ng_ppp_conf_type

const struct ng_parse_type ng_ppp_conf_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field ng_ppp_conf_type_fields[]
Definition: ng_ppp.c:377

Definition at line 378 of file ng_ppp.c.

◆ ng_ppp_conf_type_fields

const struct ng_parse_struct_field ng_ppp_conf_type_fields[] = NG_PPP_CONFIG_TYPE_INFO(&ng_ppp_bund_type, &ng_ppp_link_array_type)
static

Definition at line 376 of file ng_ppp.c.

◆ ng_ppp_constructor

ng_constructor_t ng_ppp_constructor
static

Definition at line 234 of file ng_ppp.c.

◆ ng_ppp_disconnect

ng_disconnect_t ng_ppp_disconnect
static

Definition at line 239 of file ng_ppp.c.

◆ 

const struct { ... } ng_ppp_hook_names[]
Initial value:
= {
#define HOOK_INDEX_ATALK
#define HOOK_INDEX_BYPASS
#define HOOK_INDEX_COMPRESS
#define HOOK_INDEX_ENCRYPT
#define HOOK_INDEX_DECOMPRESS
#define HOOK_INDEX_DECRYPT
#define HOOK_INDEX_INET
#define HOOK_INDEX_IPX
#define HOOK_INDEX_VJC_COMP
#define HOOK_INDEX_VJC_IP
#define HOOK_INDEX_VJC_UNCOMP
#define HOOK_INDEX_VJC_VJIP
#define HOOK_INDEX_IPV6
{ NULL, NULL }
}
static ng_rcvdata_t ng_ppp_rcvdata_encrypt
Definition: ng_ppp.c:256
static ng_rcvdata_t ng_ppp_rcvdata_vjc_vjip
Definition: ng_ppp.c:251
static ng_rcvdata_t ng_ppp_rcvdata_bypass
Definition: ng_ppp.c:246
static ng_rcvdata_t ng_ppp_rcvdata_atalk
Definition: ng_ppp.c:245
static ng_rcvdata_t ng_ppp_rcvdata_vjc_uncomp
Definition: ng_ppp.c:250
static ng_rcvdata_t ng_ppp_rcvdata_ipv6
Definition: ng_ppp.c:243
static ng_rcvdata_t ng_ppp_rcvdata_vjc_ip
Definition: ng_ppp.c:248
static ng_rcvdata_t ng_ppp_rcvdata_decompress
Definition: ng_ppp.c:254
static ng_rcvdata_t ng_ppp_rcvdata_inet
Definition: ng_ppp.c:241
static ng_rcvdata_t ng_ppp_rcvdata_ipx
Definition: ng_ppp.c:244
static ng_rcvdata_t ng_ppp_rcvdata_compress
Definition: ng_ppp.c:253
static ng_rcvdata_t ng_ppp_rcvdata_vjc_comp
Definition: ng_ppp.c:249
static ng_rcvdata_t ng_ppp_rcvdata_decrypt
Definition: ng_ppp.c:257
#define NG_PPP_HOOK_VJC_COMP
Definition: ng_ppp.h:71
#define NG_PPP_HOOK_DECOMPRESS
Definition: ng_ppp.h:67
#define NG_PPP_HOOK_INET
Definition: ng_ppp.h:74
#define NG_PPP_HOOK_DECRYPT
Definition: ng_ppp.h:69
#define NG_PPP_HOOK_VJC_VJIP
Definition: ng_ppp.h:73
#define NG_PPP_HOOK_VJC_IP
Definition: ng_ppp.h:70
#define NG_PPP_HOOK_VJC_UNCOMP
Definition: ng_ppp.h:72
#define NG_PPP_HOOK_IPX
Definition: ng_ppp.h:76
#define NG_PPP_HOOK_ENCRYPT
Definition: ng_ppp.h:68
#define NG_PPP_HOOK_COMPRESS
Definition: ng_ppp.h:66
#define NG_PPP_HOOK_BYPASS
Definition: ng_ppp.h:65
#define NG_PPP_HOOK_IPV6
Definition: ng_ppp.h:77
#define NG_PPP_HOOK_ATALK
Definition: ng_ppp.h:75

Referenced by ng_ppp_newhook().

◆ ng_ppp_link_array_type

const struct ng_parse_type ng_ppp_link_array_type
static
Initial value:
= {
}
const struct ng_parse_type ng_parse_fixedarray_type
Definition: ng_parse.c:271
static const struct ng_parse_fixedarray_info ng_ppp_array_info
Definition: ng_ppp.c:368

Definition at line 372 of file ng_ppp.c.

◆ ng_ppp_link_type

const struct ng_parse_type ng_ppp_link_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field ng_ppp_link_type_fields[]
Definition: ng_ppp.c:353

Definition at line 354 of file ng_ppp.c.

◆ ng_ppp_link_type_fields

const struct ng_parse_struct_field ng_ppp_link_type_fields[] = NG_PPP_LINK_TYPE_INFO
static

Definition at line 352 of file ng_ppp.c.

◆ ng_ppp_max_staleness

const struct timeval ng_ppp_max_staleness = { 2, 0 }
static

Definition at line 478 of file ng_ppp.c.

Referenced by ng_ppp_frag_checkstale().

◆ ng_ppp_mp_state_type

const struct ng_parse_type ng_ppp_mp_state_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field ng_ppp_mp_state_type_fields[]
Definition: ng_ppp.c:345

Definition at line 346 of file ng_ppp.c.

◆ ng_ppp_mp_state_type_fields

const struct ng_parse_struct_field ng_ppp_mp_state_type_fields[] = NG_PPP_MP_STATE_TYPE_INFO(&ng_ppp_rseq_array_type)
static

Definition at line 344 of file ng_ppp.c.

◆ ng_ppp_newhook

ng_newhook_t ng_ppp_newhook
static

Definition at line 237 of file ng_ppp.c.

◆ ng_ppp_rcvdata

ng_rcvdata_t ng_ppp_rcvdata
static

Definition at line 238 of file ng_ppp.c.

◆ ng_ppp_rcvdata_atalk

ng_rcvdata_t ng_ppp_rcvdata_atalk
static

Definition at line 245 of file ng_ppp.c.

◆ ng_ppp_rcvdata_bypass

ng_rcvdata_t ng_ppp_rcvdata_bypass
static

Definition at line 246 of file ng_ppp.c.

◆ ng_ppp_rcvdata_compress

ng_rcvdata_t ng_ppp_rcvdata_compress
static

Definition at line 253 of file ng_ppp.c.

◆ ng_ppp_rcvdata_decompress

ng_rcvdata_t ng_ppp_rcvdata_decompress
static

Definition at line 254 of file ng_ppp.c.

◆ ng_ppp_rcvdata_decrypt

ng_rcvdata_t ng_ppp_rcvdata_decrypt
static

Definition at line 257 of file ng_ppp.c.

◆ ng_ppp_rcvdata_encrypt

ng_rcvdata_t ng_ppp_rcvdata_encrypt
static

Definition at line 256 of file ng_ppp.c.

◆ ng_ppp_rcvdata_inet

ng_rcvdata_t ng_ppp_rcvdata_inet
static

Definition at line 241 of file ng_ppp.c.

Referenced by ng_ppp_update().

◆ ng_ppp_rcvdata_inet_fast

ng_rcvdata_t ng_ppp_rcvdata_inet_fast
static

Definition at line 242 of file ng_ppp.c.

Referenced by ng_ppp_update().

◆ ng_ppp_rcvdata_ipv6

ng_rcvdata_t ng_ppp_rcvdata_ipv6
static

Definition at line 243 of file ng_ppp.c.

◆ ng_ppp_rcvdata_ipx

ng_rcvdata_t ng_ppp_rcvdata_ipx
static

Definition at line 244 of file ng_ppp.c.

◆ ng_ppp_rcvdata_vjc_comp

ng_rcvdata_t ng_ppp_rcvdata_vjc_comp
static

Definition at line 249 of file ng_ppp.c.

◆ ng_ppp_rcvdata_vjc_ip

ng_rcvdata_t ng_ppp_rcvdata_vjc_ip
static

Definition at line 248 of file ng_ppp.c.

◆ ng_ppp_rcvdata_vjc_uncomp

ng_rcvdata_t ng_ppp_rcvdata_vjc_uncomp
static

Definition at line 250 of file ng_ppp.c.

◆ ng_ppp_rcvdata_vjc_vjip

ng_rcvdata_t ng_ppp_rcvdata_vjc_vjip
static

Definition at line 251 of file ng_ppp.c.

◆ ng_ppp_rcvmsg

ng_rcvmsg_t ng_ppp_rcvmsg
static

Definition at line 235 of file ng_ppp.c.

◆ ng_ppp_rseq_array_info

const struct ng_parse_fixedarray_info ng_ppp_rseq_array_info
static
Initial value:
= {
}
const struct ng_parse_type ng_parse_hint32_type
Definition: ng_parse.c:613

Definition at line 336 of file ng_ppp.c.

◆ ng_ppp_rseq_array_type

const struct ng_parse_type ng_ppp_rseq_array_type
static
Initial value:
= {
}
static const struct ng_parse_fixedarray_info ng_ppp_rseq_array_info
Definition: ng_ppp.c:336

Definition at line 340 of file ng_ppp.c.

◆ ng_ppp_shutdown

ng_shutdown_t ng_ppp_shutdown
static

Definition at line 236 of file ng_ppp.c.

◆ ng_ppp_stats64_type

const struct ng_parse_type ng_ppp_stats64_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field ng_ppp_stats64_type_fields[]
Definition: ng_ppp.c:393

Definition at line 394 of file ng_ppp.c.

◆ ng_ppp_stats64_type_fields

const struct ng_parse_struct_field ng_ppp_stats64_type_fields[] = NG_PPP_STATS64_TYPE_INFO
static

Definition at line 392 of file ng_ppp.c.

◆ ng_ppp_stats_type

const struct ng_parse_type ng_ppp_stats_type
static
Initial value:
= {
}
static const struct ng_parse_struct_field ng_ppp_stats_type_fields[]
Definition: ng_ppp.c:385

Definition at line 386 of file ng_ppp.c.

◆ ng_ppp_stats_type_fields

const struct ng_parse_struct_field ng_ppp_stats_type_fields[] = NG_PPP_STATS_TYPE_INFO
static

Definition at line 384 of file ng_ppp.c.

◆ ng_ppp_typestruct

struct ng_type ng_ppp_typestruct
static
Initial value:
= {
.version = NG_ABI_VERSION,
.constructor = ng_ppp_constructor,
.rcvmsg = ng_ppp_rcvmsg,
.shutdown = ng_ppp_shutdown,
.newhook = ng_ppp_newhook,
.rcvdata = ng_ppp_rcvdata,
.disconnect = ng_ppp_disconnect,
.cmdlist = ng_ppp_cmds,
}
#define NG_ABI_VERSION
Definition: netgraph.h:77
static ng_constructor_t ng_ppp_constructor
Definition: ng_ppp.c:234
static ng_shutdown_t ng_ppp_shutdown
Definition: ng_ppp.c:236
static ng_rcvmsg_t ng_ppp_rcvmsg
Definition: ng_ppp.c:235
static ng_newhook_t ng_ppp_newhook
Definition: ng_ppp.c:237
static const struct ng_cmdlist ng_ppp_cmds[]
Definition: ng_ppp.c:400
static ng_rcvdata_t ng_ppp_rcvdata
Definition: ng_ppp.c:238
static ng_disconnect_t ng_ppp_disconnect
Definition: ng_ppp.c:239
#define NG_PPP_NODE_TYPE
Definition: ng_ppp.h:48

Definition at line 461 of file ng_ppp.c.