Re: netgraph TTY

From: Jerry Toung (jtoung_at_arc.nasa.gov)
Date: 03/31/05

  • Next message: Maksim Yevmenkin: "Re: netgraph TTY"
    To: Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
    Date: Wed, 30 Mar 2005 19:07:15 -0800
    
    

    Hey Max,
    all I can say is thank you. That's a very nice tutorial. I am sure other
    people will benefit.
    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
    >
    > Jerry Toung wrote:
    > > Good afternoon list,
    > > I am still trying to build a simple netgraph using ng_tty. Ultimately I
    > > would like to go from inet->tee->ng_tty(/dev/cuaa0).
    > >
    > > Please advise what I am doing wrong as I still see an error message (see
    > > bottom of email). Excuse me for the slighty long thread.
    > >
    > > Here is my very simple line discipline code:
    > >
    > > int d;
    > > int ldisc;
    > > ldisc = NETGRAPHDISC;
    > >
    > >
    > > if ((d = open("/dev/cuaa0", O_RDWR)) == -1) {
    > > perror("open");
    > > } else {
    > > printf("descripto # %d\n", d);
    > > if ((ioctl(d, TIOCSETD, &ldisc)) == -1) {
    > > perror("ioctl");
    > > }
    > > }
    > > printf("Netgraph TTY node initialized successfully\nPress any key
    > > to destroy it");
    > > getc(stdin);
    > > close(d);
    > > exit;
    > >
    > >
    > > mrcrab# gcc -g netgraph.c -o test
    > > mrcrab# ./test
    > > descripto # 3
    > > Netgraph TTY node initialized successfully
    > > Press any key to destroy it
    > >
    > > + list
    > > There are 2 total nodes:
    > > Name: ngctl27022 Type: socket ID: 0000000a Num hooks: 0
    > > Name: tty1 Type: tty ID: 00000008 Num hooks: 0
    > > + mpeer . tee myhook right
    > > ngctl: "mpeer": unknown command
    > > + mkpeer . tee myhook right
    > > + name .:myhook mytee
    > > + mkpeer mytee: tty left hook
    > > ngctl: send msg: Operation not permitted
    > > +
    > >
    > >
    > > _______________________________________________
    > > freebsd-hackers@freebsd.org mailing list
    > > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    > > To unsubscribe, send any mail to
    > > "freebsd-hackers-unsubscribe@freebsd.org"

    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


  • Next message: Maksim Yevmenkin: "Re: netgraph TTY"

    Relevant Pages

    • Re: Shameless grovel for B&P of 7/17/89...
      ... time I was looking for a certain show, I got lucky posting here. ... can anyone hook me up with this show? ... interplay between Brent and Jerry!), especially the Terrapin on 7/19. ...
      (rec.music.gdead)
    • Re: Shameless grovel for B&P of 7/17/89...
      ... time I was looking for a certain show, I got lucky posting here. ... can anyone hook me up with this show? ... interplay between Brent and Jerry!), especially the Terrapin on 7/19. ...
      (rec.music.gdead)
    • Re: I need WSOP Main Event help
      ... the phones have started to ring off the hook and Jerry is getting into his ... its a shame such a worthy cause as yours goes unrewarded...aw well, ...
      (rec.gambling.poker)
    • Re: "Reunion" - Dont Call Me, Ill Call You
      ... What's the hook to this show? ... so the preppy, rich kid doesn't get his life ruined, ... but the poor kid who is his best friend does? ... AND HIS "BEST" FRIEND AND HIS SCUMMY FATHER AND HIS CLEARLY ...
      (rec.arts.tv)
    • [OT] Mutt -- how to send tagged msgs. as bccs ?
      ... Sorry, but I can't find this with Google, and no entry is in the muttrc ... Is there some key to do this that is flying by my face, or can a hook ... ought to be the highest honor and the highest responsibility anyone ... To UNSUBSCRIBE, email to debian-user-REQUEST@xxxxxxxxxxxxxxxx ...
      (Debian-User)