root/trunk/src/prefix_mgmt.c @ 26

Revision 25, 1.6 KB (checked in by andreu, 16 years ago)

aggregation feature : prefix selection even if no routed subnet

  • Property svn:eol-style set to native
Line 
1/*
2 * File: prefix_mgmt.c
3 *
4 * Authors: ANDREU Francois-Xavier
5 *
6 * Copyright (C) 2005 GIP RENATER
7 */
8
9/*  This file is part of renetcol.
10 *
11 *  renetcol is free software; you can redistribute it and/or modify
12 *  it under the terms of the GNU General Public License as published by
13 *  the Free Software Foundation; either version 2 of the License, or
14 *  (at your option) any later version.
15 *
16 *  renetcol is distributed in the hope that it will be useful,
17 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
18 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 *  GNU General Public License for more details.
20 *
21 *  You should have received a copy of the GNU General Public License
22 *  along with renetcol; if not, write to the Free Software
23 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
24 */
25
26#include "prefix_mgmt.h"
27
28/*
29 * prefCmp()
30 */
31int
32prefCmp(const void *elem1, const void *elem2){
33  struct PrefixV4 *el1 = (struct PrefixV4 *) elem1;
34  struct PrefixV4 *el2 = (struct PrefixV4 *) elem2;
35  return (
36          el1->beginning - el2->beginning
37          );
38}
39
40
41/*
42 * prefGlobalCmp()
43 */
44int
45prefGlobalCmp(const void *elem1, const void *elem2){
46  struct PrefixV4 *el1 = (struct PrefixV4 *) elem1;
47  struct PrefixV4 *el2 = (struct PrefixV4 *) elem2;
48  if ( el1->beginning >= el2->beginning && el1->beginning <= el2->end ) {
49    return 0;
50  } else if (el1->beginning < el2->beginning) {
51    return -1;
52  } else if (el1->beginning > el2->end) {
53    return 1;
54  } else {
55    syslog(LOG_ERR,"You have won !!! This case doesn't exist !!!!");
56    exit(1);
57    return 0;
58  }
59}
Note: See TracBrowser for help on using the browser.