mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-08 18:11:54 +00:00
OSPF: Reject DBDES packets with non-matching MTU
As it is specified in RFC 2328. The old code just provided warning.
This commit is contained in:
parent
ccee5a863e
commit
2bbd72863f
@ -340,6 +340,17 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa,
|
|||||||
rcv_ddseq = ntohl(ps->ddseq);
|
rcv_ddseq = ntohl(ps->ddseq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Reject packets with non-matching MTU */
|
||||||
|
if ((ifa->type != OSPF_IT_VLINK) &&
|
||||||
|
(rcv_iface_mtu != ifa->iface->mtu) &&
|
||||||
|
(rcv_iface_mtu != 0) && (ifa->iface->mtu != 0))
|
||||||
|
{
|
||||||
|
LOG_PKT("MTU mismatch with nbr %R on %s (remote %d, local %d)",
|
||||||
|
n->rid, ifa->ifname, rcv_iface_mtu, ifa->iface->mtu);
|
||||||
|
STATS2(bad_dbdes, dropped);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (n->state)
|
switch (n->state)
|
||||||
{
|
{
|
||||||
case NEIGHBOR_DOWN:
|
case NEIGHBOR_DOWN:
|
||||||
@ -355,13 +366,6 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa,
|
|||||||
/* fallthrough */
|
/* fallthrough */
|
||||||
|
|
||||||
case NEIGHBOR_EXSTART:
|
case NEIGHBOR_EXSTART:
|
||||||
if ((ifa->type != OSPF_IT_VLINK) &&
|
|
||||||
(rcv_iface_mtu != ifa->iface->mtu) &&
|
|
||||||
(rcv_iface_mtu != 0) &&
|
|
||||||
(ifa->iface->mtu != 0))
|
|
||||||
LOG_PKT_WARN("MTU mismatch with nbr %R on %s (remote %d, local %d)",
|
|
||||||
n->rid, ifa->ifname, rcv_iface_mtu, ifa->iface->mtu);
|
|
||||||
|
|
||||||
if (((rcv_imms & DBDES_IMMS) == DBDES_IMMS) &&
|
if (((rcv_imms & DBDES_IMMS) == DBDES_IMMS) &&
|
||||||
(n->rid > p->router_id) &&
|
(n->rid > p->router_id) &&
|
||||||
(plen == ospf_dbdes_hdrlen(p)))
|
(plen == ospf_dbdes_hdrlen(p)))
|
||||||
|
Loading…
Reference in New Issue
Block a user