head	1.5;
access;
symbols
	RELENG_8_4:1.5.0.2
	RELENG_9_1_0_RELEASE:1.4.2.1.4.2
	RELENG_9_1:1.4.2.1.0.4
	RELENG_9_1_BP:1.4.2.1
	RELENG_8_3_0_RELEASE:1.3.32.1.8.1
	RELENG_8_3:1.3.32.1.0.8
	RELENG_8_3_BP:1.3.32.1
	RELENG_9_0_0_RELEASE:1.4.2.1.2.1
	RELENG_9_0:1.4.2.1.0.2
	RELENG_9_0_BP:1.4.2.1
	RELENG_9:1.4.0.2
	RELENG_9_BP:1.4
	RELENG_7_4_0_RELEASE:1.3.36.1
	RELENG_8_2_0_RELEASE:1.3.32.1.6.1
	RELENG_7_4:1.3.0.36
	RELENG_7_4_BP:1.3
	RELENG_8_2:1.3.32.1.0.6
	RELENG_8_2_BP:1.3.32.1
	RELENG_8_1_0_RELEASE:1.3.32.1.4.1
	RELENG_8_1:1.3.32.1.0.4
	RELENG_8_1_BP:1.3.32.1
	RELENG_7_3_0_RELEASE:1.3.34.1
	RELENG_7_3:1.3.0.34
	RELENG_7_3_BP:1.3
	RELENG_8_0_0_RELEASE:1.3.32.1.2.1
	RELENG_8_0:1.3.32.1.0.2
	RELENG_8_0_BP:1.3.32.1
	RELENG_8:1.3.0.32
	RELENG_8_BP:1.3
	RELENG_7_2_0_RELEASE:1.3.30.1
	RELENG_7_2:1.3.0.30
	RELENG_7_2_BP:1.3
	RELENG_7_1_0_RELEASE:1.3.28.1
	RELENG_6_4_0_RELEASE:1.3.26.1
	RELENG_7_1:1.3.0.28
	RELENG_7_1_BP:1.3
	RELENG_6_4:1.3.0.26
	RELENG_6_4_BP:1.3
	RELENG_7_0_0_RELEASE:1.3
	RELENG_6_3_0_RELEASE:1.3
	RELENG_7_0:1.3.0.24
	RELENG_7_0_BP:1.3
	RELENG_6_3:1.3.0.22
	RELENG_6_3_BP:1.3
	RELENG_7:1.3.0.20
	RELENG_7_BP:1.3
	RELENG_6_2_0_RELEASE:1.3
	RELENG_6_2:1.3.0.18
	RELENG_6_2_BP:1.3
	RELENG_5_5_0_RELEASE:1.3
	RELENG_5_5:1.3.0.16
	RELENG_5_5_BP:1.3
	RELENG_6_1_0_RELEASE:1.3
	RELENG_6_1:1.3.0.14
	RELENG_6_1_BP:1.3
	RELENG_6_0_0_RELEASE:1.3
	RELENG_6_0:1.3.0.12
	RELENG_6_0_BP:1.3
	RELENG_6:1.3.0.10
	RELENG_6_BP:1.3
	RELENG_5_4_0_RELEASE:1.3
	RELENG_5_4:1.3.0.8
	RELENG_5_4_BP:1.3
	RELENG_4_11_0_RELEASE:1.1
	RELENG_4_11:1.1.0.26
	RELENG_4_11_BP:1.1
	RELENG_5_3_0_RELEASE:1.3
	RELENG_5_3:1.3.0.6
	RELENG_5_3_BP:1.3
	RELENG_5:1.3.0.4
	RELENG_5_BP:1.3
	RELENG_4_10_0_RELEASE:1.1
	RELENG_4_10:1.1.0.24
	RELENG_4_10_BP:1.1
	RELENG_5_2_1_RELEASE:1.3
	RELENG_5_2_0_RELEASE:1.3
	RELENG_5_2:1.3.0.2
	RELENG_5_2_BP:1.3
	RELENG_4_9_0_RELEASE:1.1
	RELENG_4_9:1.1.0.22
	RELENG_4_9_BP:1.1
	RELENG_5_1_0_RELEASE:1.1
	RELENG_5_1:1.1.0.20
	RELENG_5_1_BP:1.1
	RELENG_4_8_0_RELEASE:1.1
	RELENG_4_8:1.1.0.18
	RELENG_4_8_BP:1.1
	RELENG_5_0_0_RELEASE:1.1
	RELENG_5_0:1.1.0.16
	RELENG_5_0_BP:1.1
	RELENG_4_7_0_RELEASE:1.1
	RELENG_4_7:1.1.0.14
	RELENG_4_7_BP:1.1
	RELENG_4_6_2_RELEASE:1.1
	RELENG_4_6_1_RELEASE:1.1
	RELENG_4_6_0_RELEASE:1.1
	RELENG_4_6:1.1.0.12
	RELENG_4_6_BP:1.1
	RELENG_4_5_0_RELEASE:1.1
	RELENG_4_5:1.1.0.10
	RELENG_4_5_BP:1.1
	RELENG_4_4_0_RELEASE:1.1
	RELENG_4_4:1.1.0.8
	RELENG_4_4_BP:1.1
	RELENG_4_3_0_RELEASE:1.1
	RELENG_4_3:1.1.0.6
	RELENG_4_3_BP:1.1
	RELENG_4_2_0_RELEASE:1.1
	RELENG_4_1_1_RELEASE:1.1
	PRE_SMPNG:1.1
	RELENG_4_1_0_RELEASE:1.1
	RELENG_3_5_0_RELEASE:1.1.2.1
	RELENG_4_0_0_RELEASE:1.1
	RELENG_4:1.1.0.4
	RELENG_4_BP:1.1
	NETGRAPH_MFC:1.1
	RELENG_3:1.1.0.2;
locks; strict;
comment	@# @;


1.5
date	2012.11.17.01.50.32;	author svnexp;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	2011.05.22.14.23.48;	author uqs;	state Exp;
branches
	1.4.2.1;
next	1.3;

1.3
date	2003.11.15.15.26.35;	author harti;	state Exp;
branches
	1.3.10.1
	1.3.20.1
	1.3.26.1
	1.3.28.1
	1.3.30.1
	1.3.32.1
	1.3.34.1
	1.3.36.1;
next	1.2;

1.2
date	2003.09.30.22.39.22;	author julian;	state Exp;
branches;
next	1.1;

1.1
date	99.11.30.02.45.08;	author archie;	state Exp;
branches
	1.1.2.1
	1.1.4.1;
next	;

1.5.2.1
date	2012.11.17.01.50.32;	author svnexp;	state dead;
branches;
next	1.5.2.2;

1.5.2.2
date	2013.03.28.13.03.42;	author svnexp;	state Exp;
branches;
next	;

1.4.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.4.2.1.2.1
	1.4.2.1.4.1;
next	1.4.2.2;

1.4.2.2
date	2012.11.17.11.36.35;	author svnexp;	state Exp;
branches;
next	;

1.4.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.4.2.1.2.2;

1.4.2.1.2.2
date	2012.11.17.08.36.34;	author svnexp;	state Exp;
branches;
next	;

1.4.2.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.4.2.1.4.2;

1.4.2.1.4.2
date	2012.11.17.08.47.24;	author svnexp;	state Exp;
branches;
next	;

1.3.10.1
date	2012.11.17.07.41.34;	author svnexp;	state Exp;
branches;
next	;

1.3.20.1
date	2012.11.17.08.03.54;	author svnexp;	state Exp;
branches;
next	;

1.3.26.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.3.28.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.3.30.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.3.32.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.3.32.1.2.1
	1.3.32.1.4.1
	1.3.32.1.6.1
	1.3.32.1.8.1;
next	1.3.32.2;

1.3.32.2
date	2012.11.17.10.36.19;	author svnexp;	state Exp;
branches;
next	;

1.3.32.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.3.32.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.3.32.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.3.32.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.3.32.1.8.2;

1.3.32.1.8.2
date	2012.11.17.08.24.59;	author svnexp;	state Exp;
branches;
next	;

1.3.34.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.3.36.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.3.36.2;

1.3.36.2
date	2012.11.17.08.16.57;	author svnexp;	state Exp;
branches;
next	;

1.1.2.1
date	2000.02.01.01.57.55;	author archie;	state Exp;
branches;
next	;

1.1.4.1
date	2012.11.17.07.24.46;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.5
log
@Switching exporter and resync
@
text
@# $FreeBSD: head/share/examples/netgraph/ngctl 222179 2011-05-22 14:23:48Z uqs $

#
# This is an example that shows how to send ASCII formatted control
# messages to a node using ngctl(8).
#
# What we will do here create a divert(4) tap.  This simply dumps
# out all packets diverted by some ipfw(8) divert rule to the console.
#
# Lines that begin with ``$'' (shell prompt) or ``+'' (ngctl prompt)
# indicate user input
#

# First, start up ngctl in interactive mode:

    $ ngctl
    Available commands:
      connect    Connects hook <peerhook> of the node at <relpath> to <hook>
      debug      Get/set debugging verbosity level
      help       Show command summary or get more help on a specific command
      list       Show information about all nodes
      mkpeer     Create and connect a new node to the node at "path"
      msg        Send a netgraph control message to the node at "path"
      name       Assign name <name> to the node at <path>
      read       Read and execute commands from a file
      rmhook     Disconnect hook "hook" of the node at "path"
      show       Show information about the node at <path>
      shutdown   Shutdown the node at <path>
      status     Get human readable status information from the node at <path>
      types      Show information about all installed node types
      quit       Exit program
    +

# Now let's create a ng_ksocket(4) node, in the family PF_INET,
# of type SOCK_RAW, and protocol IPPROTO_DIVERT:

    + mkpeer ksocket foo inet/raw/divert

# Note that ``foo'' is the hook name on the socket node, which can be
# anything.  The ``inet/raw/divert'' is the hook name on the ksocket
# node, which tells it what kind of socket to create.

# Lets give our ksocket node a global name.  How about ``fred'':

    + name foo fred

# Note that we used ngctl's ``name'' command to do this.  However,
# the following manually constructed netgraph message would have
# accomplished the exact same thing:

    + msg foo name { name="fred" }

# Here we are using the ASCII <-> binary control message conversion
# routines.  ngctl does this for us automatically when we use the
# ``msg'' command.

# Now lets bind the socket associated with the ksocket node to a port
# supplied by the system.  We do this by sending the ksocket node a
# ``bind'' control message.  Again, ngctl does the conversion of the
# control message from ASCII to binary behind the scenes.

    + msg fred: bind inet/192.168.1.1

# The ksocket accepts arbitrary sockaddr structures, but also has
# special support for the PF_LOCAL and PF_INET protocol families.
# That is why we can specify the struct sockaddr argument to the
# ``bind'' command as ``inet/192.168.1.1'' (since we didn't specify
# a port number, it's assumed to be zero).  We could have also
# relied on the generic sockaddr syntax and instead said this:

    + msg fred: bind { family=2 len=16 data=[ 2=192 168 1 1 ] }

# This is what you would have to do for protocol families other
# that PF_INET and PF_LOCAL, at least until special handling for
# new ones is added.

# The reason for the ``2=192'' is to skip the two byte IP port number,
# which causes it to be set to zero, the default value for integral
# types when parsing.  Now since we didn't ask for a specific port
# number, we need to do a ``getname'' to see what port number we got:

    + msg fred: getname
    Rec'd response "getname" (5) from "fred:":
    Args:   inet/192.168.1.1:1029

# As soon as we sent the message, we got back a response.  Here
# ngctl is telling us that it received a control message with the
# NGF_RESP (response) flag set, the response was to a prior ``getname''
# control message, that the originator was the node addressable
# as ``fred:''.  The message arguments field is then displayed to
# us in its ASCII form.  In this case, what we get back is a struct
# sockaddr, and there we see that our port number is 1029.

# So now let's add the ipfw divert rule for whatever packets we
# want to see.  How about anything from 192.168.1.129.

    + ^Z
    Suspended
    $ ipfw add 100 divert 1029 ip from 192.168.1.129 to any
    00100 divert 1029 ip from 192.168.1.129 to any
    $ fg

# Now watch what happens when we try to ping from that machine:

    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 57 00 00 00 20 01 bf ee c0 a8 01 81  E..<W... .......
    0010:  c0 a8 01 01 08 00 49 5c 03 00 01 00 61 62 63 64  ......I\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 58 00 00 00 20 01 be ee c0 a8 01 81  E..<X... .......
    0010:  c0 a8 01 01 08 00 48 5c 03 00 02 00 61 62 63 64  ......H\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 59 00 00 00 20 01 bd ee c0 a8 01 81  E..<Y... .......
    0010:  c0 a8 01 01 08 00 47 5c 03 00 03 00 61 62 63 64  ......G\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    +

# So we're seeing the output from the ksocket socket appear on the ``foo''
# hook of ngctl's socket node.  Since the packets are getting diverted,
# the 192.168.1.129 machine doesn't see any response from us.

# Of course, any type of socket can be used, even TCP:

    + mkpeer ksocket bar inet/stream/tcp
    + msg bar connect inet/192.168.1.33:13
    ngctl: send msg: Operation now in progress
    + 
    Rec'd data packet on hook "foo":
    0000:  4d 6f 6e 20 4e 6f 76 20 32 39 20 31 37 3a 34 38  Mon Nov 29 17:48
    0010:  3a 33 37 20 31 39 39 39 0d 0a                    :37 1999..
    +

# Or, UNIX domain:

    + mkpeer ksocket bar local/stream/0
    + msg bar bind local/"/tmp/bar.socket"
    + 

# Here's an example of a more complicated ASCII control message argument.
# If you look in /sys/netgraph/ng_message.h, you will see that a node
# responds to a NGM_LISTHOOKS with a struct hooklist, which contains
# an array of struct linkinfo:
#
#     /* Structure used for NGM_LISTHOOKS */
#     struct linkinfo {
#             char            ourhook[NG_HOOKSIZ];        /* hook name */
#             char            peerhook[NG_HOOKSIZ];       /* peer hook */
#             struct nodeinfo nodeinfo;
#     };
#
#     struct hooklist {
#             struct nodeinfo nodeinfo;               /* node information */
#             struct linkinfo link[0];                /* info about each hook */
#     };
#
# By sending a node the ``listhooks'' command using ngctl, we can see
# this structure in ASCII form (lines wrapped for readability):

    + msg bar bind local/"/tmp/bar.socket"
    + msg bar listhooks
    Rec'd response "listhooks" (7) from "bar":
    Args:   { nodeinfo={ type="ksocket" id=9 hooks=1 }
	    linkinfo=[ { ourhook="local/stream/0" peerhook="bar"
	    nodeinfo={ name="ngctl1327" type="socket" id=8 hooks=1 } } ] }


@


1.5.2.1
log
@file ngctl was added on branch RELENG_8_4 on 2013-03-28 13:03:42 +0000
@
text
@d1 173
@


1.5.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 173
# $FreeBSD: releng/8.4/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $

#
# This is an example that shows how to send ASCII formatted control
# messages to a node using ngctl(8).
#
# What we will do here create a divert(4) tap.  This simply dumps
# out all packets diverted by some ipfw(8) divert rule to the console.
#
# Lines that begin with ``$'' (shell prompt) or ``+'' (ngctl prompt)
# indicate user input
#

# First, start up ngctl in interactive mode:

    $ ngctl
    Available commands:
      connect    Connects hook <peerhook> of the node at <relpath> to <hook>
      debug      Get/set debugging verbosity level
      help       Show command summary or get more help on a specific command
      list       Show information about all nodes
      mkpeer     Create and connect a new node to the node at "path"
      msg        Send a netgraph control message to the node at "path"
      name       Assign name <name> to the node at <path>
      read       Read and execute commands from a file
      rmhook     Disconnect hook "hook" of the node at "path"
      show       Show information about the node at <path>
      shutdown   Shutdown the node at <path>
      status     Get human readable status information from the node at <path>
      types      Show information about all installed node types
      quit       Exit program
    +

# Now let's create a ng_ksocket(4) node, in the family PF_INET,
# of type SOCK_RAW, and protocol IPPROTO_DIVERT:

    + mkpeer ksocket foo inet/raw/divert

# Note that ``foo'' is the hook name on the socket node, which can be
# anything.  The ``inet/raw/divert'' is the hook name on the ksocket
# node, which tells it what kind of socket to create.

# Lets give our ksocket node a global name.  How about ``fred'':

    + name foo fred

# Note that we used ngctl's ``name'' command to do this.  However,
# the following manually constructed netgraph message would have
# acomplished the exact same thing:

    + msg foo name { name="fred" }

# Here we are using the ASCII <-> binary control message conversion
# routines.  ngctl does this for us automatically when we use the
# ``msg'' command.

# Now lets bind the socket associated with the ksocket node to a port
# supplied by the system.  We do this by sending the ksocket node a
# ``bind'' control message.  Again, ngctl does the conversion of the
# control message from ASCII to binary behind the scenes.

    + msg fred: bind inet/192.168.1.1

# The ksocket accepts arbitrary sockaddr structures, but also has
# special support for the PF_LOCAL and PF_INET protocol families.
# That is why we can specify the struct sockaddr argument to the
# ``bind'' command as ``inet/192.168.1.1'' (since we didn't specify
# a port number, it's assumed to be zero).  We could have also
# relied on the generic sockaddr syntax and instead said this:

    + msg fred: bind { family=2 len=16 data=[ 2=192 168 1 1 ] }

# This is what you would have to do for protocol families other
# that PF_INET and PF_LOCAL, at least until special handling for
# new ones is added.

# The reason for the ``2=192'' is to skip the two byte IP port number,
# which causes it to be set to zero, the default value for integral
# types when parsing.  Now since we didn't ask for a specific port
# number, we need to do a ``getname'' to see what port number we got:

    + msg fred: getname
    Rec'd response "getname" (5) from "fred:":
    Args:   inet/192.168.1.1:1029

# As soon as we sent the message, we got back a response.  Here
# ngctl is telling us that it received a control message with the
# NGF_RESP (response) flag set, the reponse was to a prior ``getname''
# control message, that the originator was the node addressable
# as ``fred:''.  The message arguments field is then displayed to
# us in its ASCII form.  In this case, what we get back is a struct
# sockaddr, and there we see that our port number is 1029.

# So now let's add the ipfw divert rule for whatever packets we
# want to see.  How about anything from 192.168.1.129.

    + ^Z
    Suspended
    $ ipfw add 100 divert 1029 ip from 192.168.1.129 to any
    00100 divert 1029 ip from 192.168.1.129 to any
    $ fg

# Now watch what happens when we try to ping from that machine:

    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 57 00 00 00 20 01 bf ee c0 a8 01 81  E..<W... .......
    0010:  c0 a8 01 01 08 00 49 5c 03 00 01 00 61 62 63 64  ......I\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 58 00 00 00 20 01 be ee c0 a8 01 81  E..<X... .......
    0010:  c0 a8 01 01 08 00 48 5c 03 00 02 00 61 62 63 64  ......H\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    + 
    Rec'd data packet on hook "foo":
    0000:  45 00 00 3c 59 00 00 00 20 01 bd ee c0 a8 01 81  E..<Y... .......
    0010:  c0 a8 01 01 08 00 47 5c 03 00 03 00 61 62 63 64  ......G\....abcd
    0020:  65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74  efghijklmnopqrst
    0030:  75 76 77 61 62 63 64 65 66 67 68 69              uvwabcdefghi
    +

# So we're seeing the output from the ksocket socket appear on the ``foo''
# hook of ngctl's socket node.  Since the packets are getting diverted,
# the 192.168.1.129 machine doesn't see any response from us.

# Of course, any type of socket can be used, even TCP:

    + mkpeer ksocket bar inet/stream/tcp
    + msg bar connect inet/192.168.1.33:13
    ngctl: send msg: Operation now in progress
    + 
    Rec'd data packet on hook "foo":
    0000:  4d 6f 6e 20 4e 6f 76 20 32 39 20 31 37 3a 34 38  Mon Nov 29 17:48
    0010:  3a 33 37 20 31 39 39 39 0d 0a                    :37 1999..
    +

# Or, UNIX domain:

    + mkpeer ksocket bar local/stream/0
    + msg bar bind local/"/tmp/bar.socket"
    + 

# Here's an example of a more complicated ASCII control message argument.
# If you look in /sys/netgraph/ng_message.h, you will see that a node
# responds to a NGM_LISTHOOKS with a struct hooklist, which contains
# an array of struct linkinfo:
#
#     /* Structure used for NGM_LISTHOOKS */
#     struct linkinfo {
#             char            ourhook[NG_HOOKSIZ];        /* hook name */
#             char            peerhook[NG_HOOKSIZ];       /* peer hook */
#             struct nodeinfo nodeinfo;
#     };
#
#     struct hooklist {
#             struct nodeinfo nodeinfo;               /* node information */
#             struct linkinfo link[0];                /* info about each hook */
#     };
#
# By sending a node the ``listhooks'' command using ngctl, we can see
# this structure in ASCII form (lines wrapped for readability):

    + msg bar bind local/"/tmp/bar.socket"
    + msg bar listhooks
    Rec'd response "listhooks" (7) from "bar":
    Args:   { nodeinfo={ type="ksocket" id=9 hooks=1 }
	    linkinfo=[ { ourhook="local/stream/0" peerhook="bar"
	    nodeinfo={ name="ngctl1327" type="socket" id=8 hooks=1 } } ] }


@


1.4
log
@SVN rev 222179 on 2011-05-22 14:23:48Z by uqs

Fix more typos to be a good example.

Found by:	codespell
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.4.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.4.2.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/share/examples/netgraph/ngctl 222179 2011-05-22 14:23:48Z uqs $
@


1.4.2.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.4.2.1.4.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/share/examples/netgraph/ngctl 222179 2011-05-22 14:23:48Z uqs $
@


1.4.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.4.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/share/examples/netgraph/ngctl 222179 2011-05-22 14:23:48Z uqs $
@


1.3
log
@Replace all uses of the old netgraph constants NG_*LEN by the new
constants NG_*SIZ that include the trailing NUL byte. This change
is mostly mechanical except for the replacement of a couple of snprintf()
and sprintf() calls with strlcpy.
@
text
@d49 1
a49 1
# acomplished the exact same thing:
d88 1
a88 1
# NGF_RESP (response) flag set, the reponse was to a prior ``getname''
@


1.3.20.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $
@


1.3.10.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $
@


1.3.36.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.3.36.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $
@


1.3.34.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.3.32.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.3.32.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $
@


1.3.32.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.3.32.1.8.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/share/examples/netgraph/ngctl 122758 2003-11-15 15:26:35Z harti $
@


1.3.32.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.3.32.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.3.32.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.3.30.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.3.28.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.3.26.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.2
log
@fix typos in comments.
Submitted by: Vincent Jardin <vjardin@@wanadoo.fr>
@
text
@d153 2
a154 2
#             char            ourhook[NG_HOOKLEN + 1];        /* hook name */
#             char            peerhook[NG_HOOKLEN + 1];       /* peer hook */
@


1.1
log
@Add two new generic control messages, NGM_ASCII2BINARY and
NGM_BINARY2ASCII, which convert control messages to ASCII and back.
This allows control messages to be sent and received in ASCII form
using ngctl(8), which makes ngctl a lot more useful.

This also allows all the type-specific debugging code in libnetgraph
to go away -- instead, we just ask the node itself to do the ASCII
translation for us.

Currently, all generic control messages are supported, as well as
messages associated with the following node types: async, cisco,
ksocket, and ppp.

See /usr/share/examples/netgraph/ngctl for an example of using this.

Also give ngctl(8) the ability to print out incoming data and
control messages at any time.  Eventually nghook(8) may be subsumed.

Several other misc. bug fixes.

Reviewed by:	julian
@
text
@d34 1
a34 1
# Now let's create a ng_ksocket(8) node, in the family PF_INET,
@


1.1.4.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/4/share/examples/netgraph/ngctl 53913 1999-11-30 02:45:32Z archie $
@


1.1.2.1
log
@MFC: netgraph examples
@
text
@d1 1
a1 1
# $FreeBSD: src/share/examples/netgraph/ngctl,v 1.1 1999/11/30 02:45:08 archie Exp $
@

