Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Mar 2005 19:21:04 -0800
From:      Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
To:        Jerry Toung <jtoung@arc.nasa.gov>
Cc:        Julian Elischer <julian@elischer.org>
Subject:   Re: netgraph TTY
Message-ID:  <424B6CA0.9060202@savvis.net>
In-Reply-To: <200503301907.15654.jtoung@arc.nasa.gov>
References:  <200503301620.24086.jtoung@arc.nasa.gov> <424B50EC.1020502@savvis.net> <200503301907.15654.jtoung@arc.nasa.gov>

next in thread | previous in thread | raw e-mail | index | archive | help
Jerry Toung wrote:

> Hey Max,
> all I can say is thank you. That's a very nice tutorial. I am sure other 
> people will benefit.

so, did i get job at nasa? :)

btw, i did miss one command (naming one2many node) while 
cut-and-paste'ing this from my screen, i.e.

 >>+ mkpeer tee: one2many left2right many0
 >>+ connect tee: tee:left2right right2left many1

+ name tee:left2right one2many

 >>+ show one2many:

thanks,
max


> Take care my friend.
> Jerry
> 
> On Wednesday 30 March 2005 05:22 pm, Maksim Yevmenkin wrote:
> 
>>Jerry,
>>
>>draw a picture :) it really helps :) for example
>>
>>         right2left     left2right
>>                   \   /
>>[ksocket] ------- [tee] -------- [hole]
>>             left          right
>>
>># ngctl
>>
>>+ mkpeer hole hook hook -- create ng_hole node
>>+ name hook hole -- name ng_hole node
>>
>>
>>+ mkpeer hole: tee right right -- create ng_tee node and connect to hole
>>+ name hole:right tee -- name ng_tee node
>>
>>
>>+ mkpeer tee: ksocket left local/stream/0 -- create ksocket node and
>>connect to tee
>>+ name tee:left ksocket -- name ksocket node
>>+ msg ksocket: bind local/"/tmp/foo" -- bind ksocket
>>
>>
>>+ show tee:
>>   Name: tee             Type: tee             ID: 00000011   Num hooks: 2
>>   Local hook      Peer name       Peer type    Peer ID         Peer
>>hook
>>   ----------      ---------       ---------    -------
>>---------
>>   left            ksocket         ksocket      00000012
>>local/stream/0
>>   right           hole            hole         00000010        right
>>
>>
>>
>>+ show ksocket:
>>   Name: ksocket         Type: ksocket         ID: 00000012   Num hooks: 1
>>   Local hook      Peer name       Peer type    Peer ID         Peer
>>hook
>>   ----------      ---------       ---------    -------
>>---------
>>   local/stream/0  tee             tee          00000011        left
>>
>>
>>
>>+ show hole:
>>   Name: hole            Type: hole            ID: 00000010   Num hooks: 2
>>   Local hook      Peer name       Peer type    Peer ID         Peer
>>hook
>>   ----------      ---------       ---------    -------
>>---------
>>   right           tee             tee          00000011        right
>>
>>   hook            ngctl8529       socket       0000000f        hook
>>
>>
>>
>>now connect nghook(8) to "tee:left2right" (or you could connect ng_tty
>>node there), then connect to the unix socket at "/tmp/foo" and send
>>something to the socket. you should see output. since we have ng_hole on
>>the "right" then "right2left" will never get any data. if you need to
>>capture traffic from from "right2left" then you will need to connect
>>"one2many" node to both "right2left" (to "one2many:many0") and
>>"right2left" (to "one2name:many1") and then connect your tty node to the
>>"one2many:one" hook
>>
>>like so
>>
>>+ mkpeer tee: one2many left2right many0
>>+ connect tee: tee:left2right right2left many1
>>+ show one2many:
>>   Name: one2many        Type: one2many        ID: 00000014   Num hooks: 2
>>   Local hook      Peer name       Peer type    Peer ID         Peer
>>hook
>>   ----------      ---------       ---------    -------
>>---------
>>   many1           tee             tee          00000011
>>right2left
>>   many0           tee             tee          00000011
>>left2right
>>
>>
>>+ show tee:
>>   Name: tee             Type: tee             ID: 00000011   Num hooks: 4
>>   Local hook      Peer name       Peer type    Peer ID         Peer
>>hook
>>   ----------      ---------       ---------    -------
>>---------
>>   right2left      one2many        one2many     00000014        many1
>>
>>   left2right      one2many        one2many     00000014        many0
>>
>>   left            ksocket         ksocket      00000012
>>local/stream/0
>>   right           hole            hole         00000010        right
>>
>>
>>
>>hope this helps :)
>>
>>max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?424B6CA0.9060202>