Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

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>

home | help