FreeBSD Manual Pages
NG_DEFLATE(4) Kernel Interfaces Manual NG_DEFLATE(4) NAME ng_deflate -- Deflate PPP compression (RFC 1979) netgraph node type SYNOPSIS #include <sys/types.h> #include <netgraph/ng_deflate.h> DESCRIPTION The deflate node type implements the Deflate sub-protocols of the Compres- sion Control Protocol (CCP). The node has two hooks, comp for compression and decomp for decompression. Only one of them can be connected at the same time, specifying node's oper- ation mode. Typically that hooks would be connected to the ng_ppp(4) node type hook of the same name. Corresponding ng_ppp(4) node hook must be switched to NG_PPP_DECOMPRESS_FULL mode to permit sending uncompressed frames. HOOKS This node type supports the following hooks: comp Connection to ng_ppp(4) comp hook. Incoming frames are compressed (if possible) and sent back out the same hook. decomp Connection to ng_ppp(4) decomp hook. Incoming frames are decom- pressed (if they are compressed), and sent back out the same hook. Only one hook can be connected at the same time, specifying node's opera- tion mode. CONTROL MESSAGES This node type supports the generic control messages, plus the following: NGM_DEFLATE_CONFIG (config) This command resets and configures the node for a session (i.e., for compression or decompression). This command takes a struct ng_de- flate_config as an argument: struct ng_deflate_config { u_char enable; /* node enabled */ u_char windowBits; /* log2(Window size) */ }; The enabled field enables traffic flow through the node. The windowBits specify compression windows size as negotiated by the Com- pression Control Protocol (CCP) in PPP. NGM_DEFLATE_RESETREQ (resetreq) This message contains no arguments, and is bi-directional. If an er- ror is detected during decompression, this message is sent by the node to the originator of the NGM_DEFLATE_CONFIG message that initiated the session. The receiver should respond by sending a PPP CCP Reset-Re- quest to the peer. This message may also be received by this node type when a CCP Reset- Request or Reset-Ack is received by the local PPP entity. The node will respond by flushing its compression state so the sides can resyn- chronize. NGM_DEFLATE_GET_STATS (getstats) This control message obtains statistics for a given hook. The statis- tics are returned in struct ng_deflate_stats: struct ng_deflate_stats { uint64_t FramesPlain; uint64_t FramesComp; uint64_t FramesUncomp; uint64_t InOctets; uint64_t OutOctets; uint64_t Errors; }; NGM_DEFLATE_CLR_STATS (clrstats) This control message clears statistics for a given hook. NGM_DEFLATE_GETCLR_STATS (getclrstats) This control message obtains and clears statistics for a given hook. SHUTDOWN This node shuts down upon receipt of a NGM_SHUTDOWN control message, or when hook have been disconnected. SEE ALSO netgraph(4), ng_ppp(4), ngctl(8) J. Woods, PPP Deflate Protocol, RFC 1979. W. Simpson, The Point-to-Point Protocol (PPP), RFC 1661. AUTHORS Alexander Motin <mav@alkar.net> BUGS Due to nature of netgraph PPP implementation there are possible race condi- tions between data packet and ResetAck CCP packet in case of packet loss. As result, packet loss can produce bigger performance degradation than sup- posed by protocol. FreeBSD ports 15.quarterly December 23, 2006 NG_DEFLATE(4)
NAME | SYNOPSIS | DESCRIPTION | HOOKS | CONTROL MESSAGES | SHUTDOWN | SEE ALSO | AUTHORS | BUGS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ng_deflate&sektion=4&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>
