mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 20:28:43 +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
e1c275d87b
commit
267da8138d
@ -342,6 +342,16 @@ 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);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (n->state)
|
switch (n->state)
|
||||||
{
|
{
|
||||||
case NEIGHBOR_DOWN:
|
case NEIGHBOR_DOWN:
|
||||||
@ -357,13 +367,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