From owner-freebsd-hackers Sun Jul 5 13:46:36 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA01607 for freebsd-hackers-outgoing; Sun, 5 Jul 1998 13:46:36 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from heathers2.stdio.com (root@heathers2.stdio.com [199.89.192.5]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id NAA01596 for ; Sun, 5 Jul 1998 13:46:31 -0700 (PDT) (envelope-from lile@stdio.com) Received: (from lile@localhost) by heathers2.stdio.com (8.8.8/8.8.8) id PAA27542; Sun, 5 Jul 1998 15:38:17 -0400 (EDT) Date: Sun, 5 Jul 1998 15:38:16 -0400 (EDT) From: "Larry S. Lile" To: hackers@FreeBSD.ORG Subject: Un-rolling token-ring packets? Need a little help. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I am near having a working token-ring driver (IBM Shared ram only) but I am having trouble figuring out how to unroll the packets and pass them up the layers of network code. I am at the stage where I need to put the packets into mbufs and pass them off the an iso88025_input routine. I can already pull the packets out of the adapter's shared ram. I need help with the headers mostly and the iso88025_input routine. Any takers? Here is some sample output from the driver (I only dumped the beggining of the packets): Jul 5 14:47:50 anarchy /kernel: tok0: Packet received data: Jul 5 14:47:50 anarchy /kernel: cmd[81] station_id[100] Jul 5 14:47:50 anarchy /kernel: bptr[a3e] lhdr[e] dhdr[3] len[32] ncb[6] Jul 5 14:47:50 anarchy /kernel: tok0:Packet data: Jul 5 14:47:50 anarchy /kernel: 18 40 ff ff ff ff ff ff 0 0 83 2d 9f 35 aa aa 3 0 0 0 8 6 0 6 8 0 6 4 0 1 0 0 83 2d 9f 35 a what I know (or at least what I think) ---- Token ring mac header ----- 18 40 - Access control/Frame control (don't care - at least for now) ff ff ff ff ff ff - (Destination address to me - no previous arp) 00 00 83 2d 9f 35 - (Source address my olicom card in another machine) ---- Token ring llc header ----- aa aa - dest sap / source sap (both ip) 03 - control field, no clue? (Only one byte because dlc_hdr_len = 3?) after that I am lost. Jul 5 14:47:50 anarchy /kernel: tok0: ack'ing packet to adapter (rc=0). Jul 5 14:47:50 anarchy /kernel: tok: isrp e[2] o[8] isra e[3] o[10] (tok_rx_intr 2). Jul 5 14:47:50 anarchy /kernel: tok0: asb->bptr [a3e] arb->bptr [a3e]. Jul 5 14:47:51 anarchy /kernel: tok0: Interrupt received. Jul 5 14:47:51 anarchy /kernel: tok: isrp e[42] o[8] isra e[3] o[0] (tok_intr 1a). Jul 5 14:47:51 anarchy /kernel: tok: isrp e[2] o[8] isra e[3] o[0] (tok_intr 1b). Jul 5 14:47:51 anarchy /kernel: tok0: interrupt received (isrp_o = 8). Jul 5 14:47:51 anarchy /kernel: tok0: Receive interrupt called. Jul 5 14:47:51 anarchy /kernel: tok: isrp e[2] o[8] isra e[7] o[0] (tok_rx_intr 1). Jul 5 14:47:51 anarchy /kernel: tok0: Packet received data: Jul 5 14:47:51 anarchy /kernel: cmd[81] station_id[100] Jul 5 14:47:51 anarchy /kernel: bptr[aae] lhdr[10] dhdr[3] len[34] ncb[6] Jul 5 14:47:51 anarchy /kernel: tok0:Packet data: Jul 5 14:47:51 anarchy /kernel: 18 40 ff ff ff ff ff ff 80 0 83 2d 9f 35 82 70 aa aa 3 0 0 0 8 6 0 6 8 0 6 4 0 1 0 0 83 2d 9f 35 a what I know (or at least what I think) ----- Token ring mac header ----- 18 40 - Access control/Frame control (don't care - at least for now) ff ff ff ff ff ff - (Destination address to me - no previous arp) 80 00 83 2d 9f 35 - (Source address my olicom card in another machine, but with source routing) 82 70 - RCF (no RIF) RCF 100 - All routes broadcast 00000 - Length of RIF (0 bytes) 0 - direction (forward) 000 - largest frame (516 bytes) 0010 - reserved (no touch!) ----- Token ring llc header ------ aa aa - dest sap / source sap (both ip) 03 - control field, no clue? (Only one byte because dlc_hdr_len = 3?) after that I am lost. Jul 5 14:47:51 anarchy /kernel: tok0: ack'ing packet to adapter (rc=0). Jul 5 14:47:51 anarchy /kernel: tok: isrp e[2] o[8] isra e[7] o[10] (tok_rx_intr 2). Jul 5 14:47:51 anarchy /kernel: tok0: asb->bptr [aae] arb->bptr [aae]. I am getting very very close, I would hate to see this be for nothing because I don't understand mbufs and the lower level protocols. Also where is the ethertype field, in the SNAP? Where's the SNAP header? Arrgh, I'm in over my head, ye` old gods of networking help me please. All the code and a longer copy of the dmesg are at http://anarchy.stdio.com Thanks in advance, Larry Lile lile@stdio.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message