static void ospf_dump_dbdes(struct ospf_proto *p, struct ospf_packet *pkt) { struct ospf_lsa_header *lsas; uint i, lsa_count; u32 pkt_ddseq; u16 pkt_iface_mtu; u8 pkt_imms; ASSERT(pkt->type == DBDES_P); ospf_dump_common(p, pkt); if (ospf_is_v2(p)) { struct ospf_dbdes2_packet *ps = (void *)pkt; pkt_iface_mtu = ntohs(ps->iface_mtu); pkt_imms = ps->imms; pkt_ddseq = ntohl(ps->ddseq); } else { /* OSPFv3 */ struct ospf_dbdes3_packet *ps = (void *)pkt; pkt_iface_mtu = ntohs(ps->iface_mtu); pkt_imms = ps->imms; pkt_ddseq = ntohl(ps->ddseq); } log(L_TRACE "%s: mtu %u", p->p.name, pkt_iface_mtu); log(L_TRACE "%s: imms %s%s%s", p->p.name, (pkt_imms & DBDES_I) ? "I " : "", (pkt_imms & DBDES_M) ? "M " : "", (pkt_imms & DBDES_MS) ? "MS" : ""); log(L_TRACE "%s: ddseq %u", p->p.name, pkt_ddseq); ospf_dbdes_body(p, pkt, &lsas, &lsa_count); for (i = 0; i < lsa_count; i++) ospf_dump_lsahdr(p, lsas + i); }
static void ospf_dump_lsack(struct proto *p, struct ospf_lsack_packet *pkt) { struct ospf_packet *op = &pkt->ospf_packet; ASSERT(op->type == LSACK_P); ospf_dump_common(p, op); unsigned int i, j; j = (ntohs(op->length) - sizeof(struct ospf_lsack_packet)) / sizeof(struct ospf_lsa_header); for (i = 0; i < j; i++) ospf_dump_lsahdr(p, pkt->lsh + i); }
static void ospf_dump_dbdes(struct proto *p, struct ospf_dbdes_packet *pkt) { struct ospf_packet *op = &pkt->ospf_packet; ASSERT(op->type == DBDES_P); ospf_dump_common(p, op); log(L_TRACE "%s: imms %s%s%s", p->name, pkt->imms.bit.ms ? "MS " : "", pkt->imms.bit.m ? "M " : "", pkt->imms.bit.i ? "I " : "" ); log(L_TRACE "%s: ddseq %u", p->name, ntohl(pkt->ddseq)); struct ospf_lsa_header *plsa = (void *) (pkt + 1); unsigned int i, j; j = (ntohs(op->length) - sizeof(struct ospf_dbdes_packet)) / sizeof(struct ospf_lsa_header); for (i = 0; i < j; i++) ospf_dump_lsahdr(p, plsa + i); }