Home | History | Annotate | Download | only in include
      1 /*
      2  * ut-sim.h
      3  *
      4  * an unreliable transport simulator
      5  * (for testing replay databases and suchlike)
      6  *
      7  * David A. McGrew
      8  * Cisco Systems, Inc.
      9  */
     10 
     11 /*
     12  *
     13  * Copyright (c) 2001-2006, Cisco Systems, Inc.
     14  * All rights reserved.
     15  *
     16  * Redistribution and use in source and binary forms, with or without
     17  * modification, are permitted provided that the following conditions
     18  * are met:
     19  *
     20  *   Redistributions of source code must retain the above copyright
     21  *   notice, this list of conditions and the following disclaimer.
     22  *
     23  *   Redistributions in binary form must reproduce the above
     24  *   copyright notice, this list of conditions and the following
     25  *   disclaimer in the documentation and/or other materials provided
     26  *   with the distribution.
     27  *
     28  *   Neither the name of the Cisco Systems, Inc. nor the names of its
     29  *   contributors may be used to endorse or promote products derived
     30  *   from this software without specific prior written permission.
     31  *
     32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     35  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     36  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     37  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     38  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     39  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     40  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     41  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     42  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
     43  * OF THE POSSIBILITY OF SUCH DAMAGE.
     44  *
     45  */
     46 
     47 
     48 
     49 #ifndef UT_SIM_H
     50 #define UT_SIM_H
     51 
     52 #include "integers.h"  /* for uint32_t */
     53 
     54 #define UT_BUF 160      /* maximum amount of packet reorder */
     55 
     56 typedef struct {
     57   uint32_t index;
     58   uint32_t buffer[UT_BUF];
     59 } ut_connection;
     60 
     61 /*
     62  * ut_init(&u) initializes the ut_connection
     63  *
     64  * this function should always be the first one called on a new
     65  * ut_connection
     66  */
     67 
     68 void
     69 ut_init(ut_connection *utc);
     70 
     71 /*
     72  * ut_next_index(&u) returns the next index from the simulated
     73  * unreliable connection
     74  */
     75 
     76 uint32_t
     77 ut_next_index(ut_connection *utc);
     78 
     79 
     80 #endif /* UT_SIM_H */
     81