mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
Merge branch 'master' into mq-page-alloc
This commit is contained in:
commit
f1065e3936
@ -14,6 +14,14 @@
|
||||
#include "lib/mac.h"
|
||||
#include "lib/socket.h"
|
||||
|
||||
const char * const ospf_pkt_names[] = {
|
||||
[HELLO_P] = "HELLO",
|
||||
[DBDES_P] = "DBDES",
|
||||
[LSREQ_P] = "LSREQ",
|
||||
[LSUPD_P] = "LSUPD",
|
||||
[LSACK_P] = "LSACK",
|
||||
};
|
||||
|
||||
void
|
||||
ospf_pkt_fill_hdr(struct ospf_iface *ifa, void *buf, u8 h_type)
|
||||
{
|
||||
@ -550,6 +558,10 @@ found:
|
||||
if (rid == 0)
|
||||
DROP1("zero router ID");
|
||||
|
||||
/* Check packet type here, ospf_pkt_checkauth3() expects valid values */
|
||||
if (pkt->type < HELLO_P || pkt->type > LSACK_P)
|
||||
DROP("invalid packet type", pkt->type);
|
||||
|
||||
/* In OSPFv2, neighbors are identified by either IP or Router ID, based on network type */
|
||||
uint t = ifa->type;
|
||||
struct ospf_neighbor *n;
|
||||
@ -565,11 +577,15 @@ found:
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Check packet type here, ospf_pkt_checkauth3() expects valid values */
|
||||
if (pkt->type < HELLO_P || pkt->type > LSACK_P)
|
||||
DROP("invalid packet type", pkt->type);
|
||||
/* We need to ignore out-of-state packets before ospf_pkt_checkauth3() */
|
||||
if ((pkt->type > DBDES_P) && (n->state < NEIGHBOR_EXCHANGE))
|
||||
{
|
||||
OSPF_TRACE(D_PACKETS, "%s packet ignored - lesser state than Exchange",
|
||||
ospf_pkt_names[pkt->type]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ospf_pkt_checkauth() has its own error logging */
|
||||
/* ospf_pkt_checkauthX() has its own error logging */
|
||||
if ((ospf_is_v2(p) ?
|
||||
!ospf_pkt_checkauth2(n, ifa, pkt, len) :
|
||||
!ospf_pkt_checkauth3(n, ifa, pkt, len, sk->faddr)))
|
||||
|
@ -335,7 +335,7 @@ ospf_originate_lsa(struct ospf_proto *p, struct ospf_new_lsa *lsa)
|
||||
* equal to 0 while sizeof(struct ospf_lsa_header) is non-zero.
|
||||
* Therefore memcmp() is never executed with NULL here.
|
||||
* */
|
||||
ASSUME((en->lsa.length == 0) == (en->lsa_body == NULL));
|
||||
ASSUME(en->lsa.age >= LSA_MAXAGE || (en->lsa.length == 0) == (en->lsa_body == NULL));
|
||||
|
||||
/* Ignore the the new LSA if is the same as the current one */
|
||||
if ((en->lsa.age < LSA_MAXAGE) &&
|
||||
|
Loading…
Reference in New Issue
Block a user