mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 12:49:18 +00:00
[bgpd] Fix warnings: hash callbacks should match hash API declarations
2007-04-22 Sebastien Tandel <sebastien@tandel.be> * bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp) conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with void * arguments as defined by the API. * bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with void * arguments as defined by the API. * bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make, cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make, transit_hash_cmp, attrhash_key_make, attrhash_cmp, bgp_attr_hash_alloc) conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with void * arguments as defined by the API.
This commit is contained in:
parent
e8eb8340c1
commit
923de654c8
@ -1,3 +1,17 @@
|
|||||||
|
2007-04-22 Sebastien Tandel <sebastien@tandel.be>
|
||||||
|
|
||||||
|
* bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp)
|
||||||
|
conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with
|
||||||
|
void * arguments as defined by the API.
|
||||||
|
* bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API.
|
||||||
|
Defines _hash_[alloc|key|cmp] with void * arguments as defined by
|
||||||
|
the API.
|
||||||
|
* bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make,
|
||||||
|
cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make,
|
||||||
|
transit_hash_cmp, attrhash_key_make, attrhash_cmp,
|
||||||
|
bgp_attr_hash_alloc) conforms to quagga hash API. Defines
|
||||||
|
_hash_[alloc|key|cmp] with void * arguments as defined by the API.
|
||||||
|
|
||||||
2007-04-15 Sebastien Tandel <sebastien@tandel.be>
|
2007-04-15 Sebastien Tandel <sebastien@tandel.be>
|
||||||
|
|
||||||
* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
|
* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
|
||||||
|
@ -53,8 +53,9 @@ baa_free (struct bgp_advertise_attr *baa)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
baa_hash_alloc (struct bgp_advertise_attr *ref)
|
baa_hash_alloc (void *p)
|
||||||
{
|
{
|
||||||
|
struct bgp_advertise_attr * ref = (struct bgp_advertise_attr *) p;
|
||||||
struct bgp_advertise_attr *baa;
|
struct bgp_advertise_attr *baa;
|
||||||
|
|
||||||
baa = baa_new ();
|
baa = baa_new ();
|
||||||
@ -63,14 +64,19 @@ baa_hash_alloc (struct bgp_advertise_attr *ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
baa_hash_key (struct bgp_advertise_attr *baa)
|
baa_hash_key (void *p)
|
||||||
{
|
{
|
||||||
|
struct bgp_advertise_attr * baa = (struct bgp_advertise_attr *) p;
|
||||||
|
|
||||||
return attrhash_key_make (baa->attr);
|
return attrhash_key_make (baa->attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
baa_hash_cmp (struct bgp_advertise_attr *baa1, struct bgp_advertise_attr *baa2)
|
baa_hash_cmp (void *p1, void *p2)
|
||||||
{
|
{
|
||||||
|
struct bgp_advertise_attr * baa1 = (struct bgp_advertise_attr *) p1;
|
||||||
|
struct bgp_advertise_attr * baa2 = (struct bgp_advertise_attr *) p2;
|
||||||
|
|
||||||
return attrhash_cmp (baa1->attr, baa2->attr);
|
return attrhash_cmp (baa1->attr, baa2->attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1447,8 +1447,9 @@ aspath_str2aspath (const char *str)
|
|||||||
|
|
||||||
/* Make hash value by raw aspath data. */
|
/* Make hash value by raw aspath data. */
|
||||||
unsigned int
|
unsigned int
|
||||||
aspath_key_make (struct aspath *aspath)
|
aspath_key_make (void *p)
|
||||||
{
|
{
|
||||||
|
struct aspath * aspath = (struct aspath *) p;
|
||||||
unsigned int key = 0;
|
unsigned int key = 0;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
struct assegment *seg = aspath->segments;
|
struct assegment *seg = aspath->segments;
|
||||||
|
@ -79,7 +79,7 @@ extern void aspath_unintern (struct aspath *);
|
|||||||
extern const char *aspath_print (struct aspath *);
|
extern const char *aspath_print (struct aspath *);
|
||||||
extern void aspath_print_vty (struct vty *, const char *, struct aspath *);
|
extern void aspath_print_vty (struct vty *, const char *, struct aspath *);
|
||||||
extern void aspath_print_all_vty (struct vty *);
|
extern void aspath_print_all_vty (struct vty *);
|
||||||
extern unsigned int aspath_key_make (struct aspath *);
|
extern unsigned int aspath_key_make (void *);
|
||||||
extern int aspath_loop_check (struct aspath *, as_t);
|
extern int aspath_loop_check (struct aspath *, as_t);
|
||||||
extern int aspath_private_as_check (struct aspath *);
|
extern int aspath_private_as_check (struct aspath *);
|
||||||
extern int aspath_firstas_check (struct aspath *, as_t);
|
extern int aspath_firstas_check (struct aspath *, as_t);
|
||||||
|
@ -63,8 +63,9 @@ int attr_str_max = sizeof(attr_str)/sizeof(attr_str[0]);
|
|||||||
struct hash *cluster_hash;
|
struct hash *cluster_hash;
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
cluster_hash_alloc (struct cluster_list *val)
|
cluster_hash_alloc (void *p)
|
||||||
{
|
{
|
||||||
|
struct cluster_list * val = (struct cluster_list *) p;
|
||||||
struct cluster_list *cluster;
|
struct cluster_list *cluster;
|
||||||
|
|
||||||
cluster = XMALLOC (MTYPE_CLUSTER, sizeof (struct cluster_list));
|
cluster = XMALLOC (MTYPE_CLUSTER, sizeof (struct cluster_list));
|
||||||
@ -110,8 +111,9 @@ cluster_loop_check (struct cluster_list *cluster, struct in_addr originator)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
cluster_hash_key_make (struct cluster_list *cluster)
|
cluster_hash_key_make (void *p)
|
||||||
{
|
{
|
||||||
|
struct cluster_list * cluster = (struct cluster_list *) p;
|
||||||
unsigned int key = 0;
|
unsigned int key = 0;
|
||||||
int length;
|
int length;
|
||||||
caddr_t pnt;
|
caddr_t pnt;
|
||||||
@ -126,8 +128,11 @@ cluster_hash_key_make (struct cluster_list *cluster)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cluster_hash_cmp (struct cluster_list *cluster1, struct cluster_list *cluster2)
|
cluster_hash_cmp (void *p1, void *p2)
|
||||||
{
|
{
|
||||||
|
struct cluster_list * cluster1 = (struct cluster_list *) p1;
|
||||||
|
struct cluster_list * cluster2 = (struct cluster_list *) p2;
|
||||||
|
|
||||||
if (cluster1->length == cluster2->length &&
|
if (cluster1->length == cluster2->length &&
|
||||||
memcmp (cluster1->list, cluster2->list, cluster1->length) == 0)
|
memcmp (cluster1->list, cluster2->list, cluster1->length) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
@ -205,11 +210,12 @@ transit_free (struct transit *transit)
|
|||||||
XFREE (MTYPE_TRANSIT, transit);
|
XFREE (MTYPE_TRANSIT, transit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
transit_hash_alloc (struct transit *transit)
|
transit_hash_alloc (void *p)
|
||||||
{
|
{
|
||||||
/* Transit structure is already allocated. */
|
/* Transit structure is already allocated. */
|
||||||
return transit;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct transit *
|
static struct transit *
|
||||||
@ -241,8 +247,9 @@ transit_unintern (struct transit *transit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
transit_hash_key_make (struct transit *transit)
|
transit_hash_key_make (void *p)
|
||||||
{
|
{
|
||||||
|
struct transit * transit = (struct transit *) p;
|
||||||
unsigned int key = 0;
|
unsigned int key = 0;
|
||||||
int length;
|
int length;
|
||||||
caddr_t pnt;
|
caddr_t pnt;
|
||||||
@ -257,8 +264,11 @@ transit_hash_key_make (struct transit *transit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
transit_hash_cmp (struct transit *transit1, struct transit *transit2)
|
transit_hash_cmp (void *p1, void *p2)
|
||||||
{
|
{
|
||||||
|
struct transit * transit1 = (struct transit *) p1;
|
||||||
|
struct transit * transit2 = (struct transit *) p2;
|
||||||
|
|
||||||
if (transit1->length == transit2->length &&
|
if (transit1->length == transit2->length &&
|
||||||
memcmp (transit1->val, transit2->val, transit1->length) == 0)
|
memcmp (transit1->val, transit2->val, transit1->length) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
@ -288,8 +298,9 @@ attr_unknown_count (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
attrhash_key_make (struct attr *attr)
|
attrhash_key_make (void *p)
|
||||||
{
|
{
|
||||||
|
struct attr * attr = (struct attr *) p;
|
||||||
unsigned int key = 0;
|
unsigned int key = 0;
|
||||||
|
|
||||||
key += attr->origin;
|
key += attr->origin;
|
||||||
@ -328,8 +339,11 @@ attrhash_key_make (struct attr *attr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
attrhash_cmp (struct attr *attr1, struct attr *attr2)
|
attrhash_cmp (void *p1, void *p2)
|
||||||
{
|
{
|
||||||
|
struct attr * attr1 = (struct attr *) p1;
|
||||||
|
struct attr * attr2 = (struct attr *) p2;
|
||||||
|
|
||||||
if (attr1->flag == attr2->flag
|
if (attr1->flag == attr2->flag
|
||||||
&& attr1->origin == attr2->origin
|
&& attr1->origin == attr2->origin
|
||||||
&& attr1->nexthop.s_addr == attr2->nexthop.s_addr
|
&& attr1->nexthop.s_addr == attr2->nexthop.s_addr
|
||||||
@ -379,8 +393,9 @@ attr_show_all (struct vty *vty)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
bgp_attr_hash_alloc (struct attr *val)
|
bgp_attr_hash_alloc (void *p)
|
||||||
{
|
{
|
||||||
|
struct attr * val = (struct attr *) p;
|
||||||
struct attr *attr;
|
struct attr *attr;
|
||||||
|
|
||||||
attr = XMALLOC (MTYPE_ATTR, sizeof (struct attr));
|
attr = XMALLOC (MTYPE_ATTR, sizeof (struct attr));
|
||||||
|
@ -129,8 +129,8 @@ extern bgp_size_t bgp_packet_withdraw (struct peer *peer, struct stream *s,
|
|||||||
struct prefix_rd *, u_char *);
|
struct prefix_rd *, u_char *);
|
||||||
extern void bgp_dump_routes_attr (struct stream *, struct attr *,
|
extern void bgp_dump_routes_attr (struct stream *, struct attr *,
|
||||||
struct prefix *);
|
struct prefix *);
|
||||||
extern unsigned int attrhash_key_make (struct attr *);
|
extern int attrhash_cmp (void *, void *);
|
||||||
extern int attrhash_cmp (struct attr *, struct attr *);
|
extern unsigned int attrhash_key_make (void *);
|
||||||
extern void attr_show_all (struct vty *);
|
extern void attr_show_all (struct vty *);
|
||||||
extern unsigned long int attr_count (void);
|
extern unsigned long int attr_count (void);
|
||||||
extern unsigned long int attr_unknown_count (void);
|
extern unsigned long int attr_unknown_count (void);
|
||||||
|
Loading…
Reference in New Issue
Block a user