token.h revision 44165
1227825Stheraven/* 2227825Stheraven * Copyright (c) 1998, Larry Lile 3227825Stheraven * All rights reserved. 4227825Stheraven * 5227825Stheraven * Redistribution and use in source and binary forms, with or without 6227825Stheraven * modification, are permitted provided that the following conditions 7227825Stheraven * are met: 8227825Stheraven * 1. Redistributions of source code must retain the above copyright 9227825Stheraven * notice unmodified, this list of conditions, and the following 10227825Stheraven * disclaimer. 11227825Stheraven * 2. Redistributions in binary form must reproduce the above copyright 12227825Stheraven * notice, this list of conditions and the following disclaimer in the 13227825Stheraven * documentation and/or other materials provided with the distribution. 14227825Stheraven * 15227825Stheraven * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16227825Stheraven * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17227825Stheraven * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18227825Stheraven * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19227825Stheraven * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20227825Stheraven * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21227825Stheraven * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22227825Stheraven * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23227825Stheraven * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24227825Stheraven * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25227825Stheraven * SUCH DAMAGE. 26227825Stheraven * 27227825Stheraven */ 28227825Stheraven 29227825Stheraven#define TOKEN_HDR_LEN 14 30227825Stheraven#define IS_SOURCE_ROUTED (tp->ether_shost[0] & 0x80) 31227825Stheraven#define RIF_LENGTH ((ntohs(tp->rcf) & 0x1f00) >> 8) 32227825Stheraven#define TOKEN_RING_MAC_LEN 6 33227825Stheraven#define ROUTING_SEGMENT_MAX 16 34227825Stheraven 35227825Stheravenstruct token_header { 36227825Stheraven u_char ac; 37227825Stheraven u_char fc; 38227825Stheraven u_char ether_dhost[TOKEN_RING_MAC_LEN]; 39227825Stheraven u_char ether_shost[TOKEN_RING_MAC_LEN]; 40227825Stheraven u_short rcf; 41227825Stheraven u_short rseg[ROUTING_SEGMENT_MAX]; 42227825Stheraven}; 43227825Stheraven 44227825Stheraven