MultiHop.h
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:3k
源码类别:

网络

开发平台:

Others

  1. // $Id: MultiHop.h,v 1.2 2003/11/30 00:03:23 alecwoo Exp $
  2. /* tab:4
  3.  * "Copyright (c) 2000-2003 The Regents of the University  of California.  
  4.  * All rights reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software and its
  7.  * documentation for any purpose, without fee, and without written agreement is
  8.  * hereby granted, provided that the above copyright notice, the following
  9.  * two paragraphs and the author appear in all copies of this software.
  10.  * 
  11.  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  12.  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  13.  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  14.  * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  15.  * 
  16.  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  17.  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  18.  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  19.  * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  20.  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
  21.  *
  22.  * Copyright (c) 2002-2003 Intel Corporation
  23.  * All rights reserved.
  24.  *
  25.  * This file is distributed under the terms in the attached INTEL-LICENSE     
  26.  * file. If you do not find these files, copies can be found by writing to
  27.  * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, 
  28.  * 94704.  Attention:  Intel License Inquiry.
  29.  */
  30. /*
  31.  *
  32.  * Authors: Philip Buonadonna, Alec Woo, Terence Tong, Crossbow
  33.  * Date last modified:  2/20/03
  34.  *
  35.  */
  36. #ifndef _TOS_MULTIHOP_H
  37. #define _TOS_MULTIHOP_H
  38. #include "AM.h"
  39. enum {
  40.   AM_MULTIHOPMSG = 250,
  41.   AM_DEBUGPACKET = 3 
  42. };
  43. /* Fields of neighbor table */
  44. typedef struct TOS_MHopNeighbor {
  45.   uint16_t addr;                     // state provided by nbr
  46.   uint16_t recv_count;               // since last goodness update
  47.   uint16_t fail_count;               // since last goodness, adjusted by TOs
  48.   int16_t last_seqno;
  49.   uint8_t goodness;
  50.   uint8_t hopcount;
  51.   uint8_t timeouts;      // since last recv
  52. } TOS_MHopNeighbor;
  53.   
  54. typedef struct MultihopMsg {
  55.   uint16_t sourceaddr;
  56.   uint16_t originaddr;
  57.   int16_t seqno;
  58.   uint8_t hopcount;
  59.   uint8_t data[(TOSH_DATA_LENGTH - 7)]; 
  60. } __attribute__ ((packed)) TOS_MHopMsg;
  61. typedef struct DBGEstEntry {
  62.   uint16_t id;
  63.   uint8_t hopcount;
  64.   uint8_t sendEst;
  65. } __attribute__ ((packed)) DBGEstEntry;
  66. typedef struct DebugPacket {
  67.   uint8_t estEntries;
  68.   DBGEstEntry estList[5];
  69. } __attribute__ ((packed)) DebugPacket;
  70. #endif /* _TOS_MULTIHOP_H */