File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pimd / dvmrp_proto.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jun 12 07:59:37 2017 UTC (7 years ago) by misho
Branches: pimd, MAIN
CVS tags: v2_3_2, HEAD
pimd 2.3.2

    1: /*
    2:  * Copyright (c) 1998-2001
    3:  * University of Southern California/Information Sciences Institute.
    4:  * All rights reserved.
    5:  *
    6:  * Redistribution and use in source and binary forms, with or without
    7:  * modification, are permitted provided that the following conditions
    8:  * are met:
    9:  * 1. Redistributions of source code must retain the above copyright
   10:  *    notice, this list of conditions and the following disclaimer.
   11:  * 2. Redistributions in binary form must reproduce the above copyright
   12:  *    notice, this list of conditions and the following disclaimer in the
   13:  *    documentation and/or other materials provided with the distribution.
   14:  * 3. Neither the name of the project nor the names of its contributors
   15:  *    may be used to endorse or promote products derived from this software
   16:  *    without specific prior written permission.
   17:  *
   18:  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
   19:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   20:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   21:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
   22:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   23:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   24:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   26:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   27:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   28:  * SUCH DAMAGE.
   29:  */
   30: /*
   31:  *  $Id: dvmrp_proto.c,v 1.1.1.1 2017/06/12 07:59:37 misho Exp $
   32:  */
   33: 
   34: 
   35: #include "defs.h"
   36: 
   37: 
   38: /* TODO */
   39: /*
   40:  * Process an incoming neighbor probe message.
   41:  */
   42: void
   43: dvmrp_accept_probe(src, dst, p, datalen, level)
   44:     uint32_t src __attribute__((unused));
   45:     uint32_t dst __attribute__((unused));
   46:     uint8_t *p __attribute__((unused));
   47:     int datalen __attribute__((unused));
   48:     uint32_t level __attribute__((unused));
   49: {
   50:     return;
   51: }
   52: 
   53: 
   54: /* TODO */
   55: /*
   56:  * Process an incoming route report message.
   57:  */
   58: void
   59: dvmrp_accept_report(src, dst, p, datalen, level)
   60:     uint32_t src __attribute__((unused));
   61:     uint32_t dst __attribute__((unused));
   62:     uint8_t *p __attribute__((unused));
   63:     int datalen __attribute__((unused));
   64:     uint32_t level __attribute__((unused));
   65: {
   66:     return;
   67: }
   68: 
   69: 
   70: /* TODO */
   71: void
   72: dvmrp_accept_info_request(src, dst, p, datalen)
   73:     uint32_t src __attribute__((unused));
   74:     uint32_t dst __attribute__((unused));
   75:     uint8_t *p __attribute__((unused));
   76:     int datalen __attribute__((unused));
   77: {
   78:     return;
   79: }
   80: 
   81: 
   82: /*
   83:  * Process an incoming info reply message.
   84:  */
   85: void
   86: dvmrp_accept_info_reply(src, dst, p, datalen)
   87:     uint32_t src;
   88:     uint32_t dst;
   89:     uint8_t *p __attribute__((unused));
   90:     int datalen __attribute__((unused));
   91: {
   92:     IF_DEBUG(DEBUG_PKT)
   93:         logit(LOG_DEBUG, 0, "ignoring spurious DVMRP info reply from %s to %s",
   94:               inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2)));
   95: }
   96: 
   97: 
   98: /*
   99:  * Process an incoming neighbor-list message.
  100:  */
  101: void
  102: dvmrp_accept_neighbors(src, dst, p, datalen, level)
  103:     uint32_t src;
  104:     uint32_t dst;
  105:     uint8_t *p __attribute__((unused));
  106:     int datalen __attribute__((unused));
  107:     uint32_t level __attribute__((unused));
  108: {
  109:     logit(LOG_INFO, 0, "ignoring spurious DVMRP neighbor list from %s to %s",
  110:           inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2)));
  111: }
  112: 
  113: 
  114: /*
  115:  * Process an incoming neighbor-list message.
  116:  */
  117: void
  118: dvmrp_accept_neighbors2(src, dst, p, datalen, level)
  119:     uint32_t src;
  120:     uint32_t dst;
  121:     uint8_t *p __attribute__((unused));
  122:     int datalen __attribute__((unused));
  123:     uint32_t level __attribute__((unused));
  124: {
  125:     IF_DEBUG(DEBUG_PKT)
  126:         logit(LOG_DEBUG, 0,
  127:               "ignoring spurious DVMRP neighbor list2 from %s to %s",
  128:               inet_fmt(src, s1, sizeof(s1)), inet_fmt(dst, s2, sizeof(s2)));
  129: }
  130: 
  131: 
  132: /* TODO */
  133: /*
  134:  * Takes the prune message received and then strips it to
  135:  * determine the (src, grp) pair to be pruned.
  136:  *
  137:  * Adds the router to the (src, grp) entry then.
  138:  *
  139:  * Determines if further packets have to be sent down that vif
  140:  *
  141:  * Determines if a corresponding prune message has to be generated
  142:  */
  143: void
  144: dvmrp_accept_prune(src, dst, p, datalen)
  145:     uint32_t src __attribute__((unused));
  146:     uint32_t dst __attribute__((unused));
  147:     uint8_t *p __attribute__((unused));
  148:     int datalen __attribute__((unused));
  149: {
  150:     return;
  151: }
  152: 
  153: 
  154: /* TODO */
  155: /* determine the multicast group and src
  156:  *
  157:  * if it does, then determine if a prune was sent
  158:  * upstream.
  159:  * if prune sent upstream, send graft upstream and send
  160:  * ack downstream.
  161:  *
  162:  * if no prune sent upstream, change the forwarding bit
  163:  * for this interface and send ack downstream.
  164:  *
  165:  * if no entry exists for this group send ack downstream.
  166:  */
  167: void
  168: dvmrp_accept_graft(src, dst, p, datalen)
  169:     uint32_t     src __attribute__((unused));
  170:     uint32_t     dst __attribute__((unused));
  171:     uint8_t     *p __attribute__((unused));
  172:     int         datalen __attribute__((unused));
  173: {
  174:     return;
  175: }
  176: 
  177: 
  178: /* TODO */
  179: /*
  180:  * find out which group is involved first of all
  181:  * then determine if a graft was sent.
  182:  * if no graft sent, ignore the message
  183:  * if graft was sent and the ack is from the right
  184:  * source, remove the graft timer so that we don't
  185:  * have send a graft again
  186:  */
  187: void
  188: dvmrp_accept_g_ack(src, dst, p, datalen)
  189:     uint32_t     src __attribute__((unused));
  190:     uint32_t     dst __attribute__((unused));
  191:     uint8_t     *p __attribute__((unused));
  192:     int         datalen __attribute__((unused));
  193: {
  194:     return;
  195: }
  196: 
  197: /**
  198:  * Local Variables:
  199:  *  version-control: t
  200:  *  indent-tabs-mode: t
  201:  *  c-file-style: "ellemtel"
  202:  *  c-basic-offset: 4
  203:  * End:
  204:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>