sys/netinet/in_pcb.c
1339
const struct sockaddr *lsa, u_int rtableid)
sys/netinet/in_pcb.c
1348
KASSERT(lsa->sa_family == AF_INET6);
sys/netinet/in_pcb.c
1350
satosin6_const(lsa), rtableid);
sys/netinet/in_pcb.c
1354
KASSERT(lsa->sa_family == AF_INET);
sys/netinet/in_pcb.c
1356
lsin = satosin_const(lsa);
sys/scsi/cd.c
1672
a->lsa.agid = buf[7] >> 6;
sys/scsi/cd.c
1771
cmd->bytes[9] = 0x3f | (a->lsa.agid << 6);
sys/sys/cdio.h
425
struct dvd_lu_send_agid lsa;
usr.sbin/ospf6ctl/ospf6ctl.c
621
struct lsa_hdr *lsa;
usr.sbin/ospf6ctl/ospf6ctl.c
626
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
627
if (lsa->type != lasttype) {
usr.sbin/ospf6ctl/ospf6ctl.c
628
show_database_head(area_id, ifname, lsa->type);
usr.sbin/ospf6ctl/ospf6ctl.c
633
log_id(lsa->ls_id), log_adv_rtr(lsa->adv_rtr),
usr.sbin/ospf6ctl/ospf6ctl.c
634
ntohs(lsa->age), ntohl(lsa->seq_num),
usr.sbin/ospf6ctl/ospf6ctl.c
635
ntohs(lsa->ls_chksum));
usr.sbin/ospf6ctl/ospf6ctl.c
636
lasttype = lsa->type;
usr.sbin/ospf6ctl/ospf6ctl.c
682
show_db_hdr_msg_detail(struct lsa_hdr *lsa)
usr.sbin/ospf6ctl/ospf6ctl.c
684
printf("LS age: %d\n", ntohs(lsa->age));
usr.sbin/ospf6ctl/ospf6ctl.c
685
printf("LS Type: %s\n", print_ls_type(lsa->type));
usr.sbin/ospf6ctl/ospf6ctl.c
687
switch (ntohs(lsa->type)) {
usr.sbin/ospf6ctl/ospf6ctl.c
693
printf("Link State ID: %s\n", log_id(lsa->ls_id));
usr.sbin/ospf6ctl/ospf6ctl.c
697
"Router)\n", log_id(lsa->ls_id));
usr.sbin/ospf6ctl/ospf6ctl.c
701
"Router)\n", log_id(lsa->ls_id));
usr.sbin/ospf6ctl/ospf6ctl.c
705
printf("Advertising Router: %s\n", log_adv_rtr(lsa->adv_rtr));
usr.sbin/ospf6ctl/ospf6ctl.c
706
printf("LS Seq Number: 0x%08x\n", ntohl(lsa->seq_num));
usr.sbin/ospf6ctl/ospf6ctl.c
707
printf("Checksum: 0x%04x\n", ntohs(lsa->ls_chksum));
usr.sbin/ospf6ctl/ospf6ctl.c
708
printf("Length: %d\n", ntohs(lsa->len));
usr.sbin/ospf6ctl/ospf6ctl.c
779
struct lsa *lsa;
usr.sbin/ospf6ctl/ospf6ctl.c
791
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
792
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
793
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
794
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
796
asext = (struct lsa_asext *)((char *)lsa + sizeof(lsa->hdr));
usr.sbin/ospf6ctl/ospf6ctl.c
799
print_asext_flags(ntohl(lsa->data.asext.metric)));
usr.sbin/ospf6ctl/ospf6ctl.c
802
if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_E_FLAG)
usr.sbin/ospf6ctl/ospf6ctl.c
814
if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_F_FLAG) {
usr.sbin/ospf6ctl/ospf6ctl.c
820
if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_T_FLAG) {
usr.sbin/ospf6ctl/ospf6ctl.c
825
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
828
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
829
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
830
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
831
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
833
ntohl(lsa->data.link.opts))));
usr.sbin/ospf6ctl/ospf6ctl.c
835
log_in6addr(&lsa->data.link.lladdr));
usr.sbin/ospf6ctl/ospf6ctl.c
837
nlinks = ntohl(lsa->data.link.numprefix);
usr.sbin/ospf6ctl/ospf6ctl.c
839
off = sizeof(lsa->hdr) + sizeof(struct lsa_link);
usr.sbin/ospf6ctl/ospf6ctl.c
842
prefix = (struct lsa_prefix *)((char *)lsa + off);
usr.sbin/ospf6ctl/ospf6ctl.c
856
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
859
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
860
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
861
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
862
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
864
print_ospf_options(LSA_24_GETLO(ntohl(lsa->data.net.opts))));
usr.sbin/ospf6ctl/ospf6ctl.c
866
nlinks = (ntohs(lsa->hdr.len) - sizeof(struct lsa_hdr) -
usr.sbin/ospf6ctl/ospf6ctl.c
868
net_link = (struct lsa_net_link *)((char *)lsa +
usr.sbin/ospf6ctl/ospf6ctl.c
869
sizeof(lsa->hdr) + sizeof(lsa->data.net));
usr.sbin/ospf6ctl/ospf6ctl.c
879
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
882
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
883
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
884
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
885
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
887
print_ospf_flags(LSA_24_GETHI(ntohl(lsa->data.rtr.opts))));
usr.sbin/ospf6ctl/ospf6ctl.c
889
print_ospf_options(LSA_24_GETLO(ntohl(lsa->data.rtr.opts))));
usr.sbin/ospf6ctl/ospf6ctl.c
891
nlinks = (ntohs(lsa->hdr.len) - sizeof(struct lsa_hdr)
usr.sbin/ospf6ctl/ospf6ctl.c
895
off = sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
usr.sbin/ospf6ctl/ospf6ctl.c
898
rtr_link = (struct lsa_rtr_link *)((char *)lsa + off);
usr.sbin/ospf6ctl/ospf6ctl.c
933
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
936
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
937
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
938
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
939
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
941
print_ls_type(lsa->data.pref_intra.ref_type));
usr.sbin/ospf6ctl/ospf6ctl.c
942
addr.s_addr = lsa->data.pref_intra.ref_ls_id;
usr.sbin/ospf6ctl/ospf6ctl.c
944
addr.s_addr = lsa->data.pref_intra.ref_adv_rtr;
usr.sbin/ospf6ctl/ospf6ctl.c
946
nlinks = ntohs(lsa->data.pref_intra.numprefix);
usr.sbin/ospf6ctl/ospf6ctl.c
949
off = sizeof(lsa->hdr) + sizeof(struct lsa_intra_prefix);
usr.sbin/ospf6ctl/ospf6ctl.c
952
prefix = (struct lsa_prefix *)((char *)lsa + off);
usr.sbin/ospf6ctl/ospf6ctl.c
967
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
970
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
971
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
972
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
973
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
975
printf("Metric: %d\n", ntohl(lsa->data.pref_sum.metric) &
usr.sbin/ospf6ctl/ospf6ctl.c
977
lasttype = lsa->hdr.type;
usr.sbin/ospf6ctl/ospf6ctl.c
980
lsa = imsg->data;
usr.sbin/ospf6ctl/ospf6ctl.c
981
if (lsa->hdr.type != lasttype)
usr.sbin/ospf6ctl/ospf6ctl.c
982
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospf6ctl/ospf6ctl.c
983
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospf6ctl/ospf6ctl.c
985
addr.s_addr = lsa->data.rtr_sum.dest_rtr_id;
usr.sbin/ospf6ctl/ospf6ctl.c
988
print_ospf_options(ntohl(lsa->data.rtr_sum.opts)));
usr.sbin/ospf6ctl/ospf6ctl.c
989
printf("Metric: %d\n\n", ntohl(lsa->data.rtr_sum.metric) &
usr.sbin/ospf6d/database.c
341
db_sum_list_add(struct nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospf6d/database.c
349
le->le_lsa = lsa;
usr.sbin/ospf6d/lsack.c
180
ls_ack_list_add(struct iface *iface, struct lsa_hdr *lsa)
usr.sbin/ospf6d/lsack.c
184
if (lsa == NULL)
usr.sbin/ospf6d/lsack.c
194
le->le_lsa = lsa;
usr.sbin/ospf6d/lsreq.c
115
ls_req_list_add(struct nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospf6d/lsreq.c
119
if (lsa == NULL)
usr.sbin/ospf6d/lsreq.c
126
le->le_lsa = lsa;
usr.sbin/ospf6d/lsupdate.c
243
struct lsa_hdr lsa;
usr.sbin/ospf6d/lsupdate.c
272
if (len < sizeof(lsa)) {
usr.sbin/ospf6d/lsupdate.c
278
memcpy(&lsa, buf, sizeof(lsa));
usr.sbin/ospf6d/lsupdate.c
279
if (len < ntohs(lsa.len)) {
usr.sbin/ospf6d/lsupdate.c
286
buf, ntohs(lsa.len));
usr.sbin/ospf6d/lsupdate.c
287
buf += ntohs(lsa.len);
usr.sbin/ospf6d/lsupdate.c
288
len -= ntohs(lsa.len);
usr.sbin/ospf6d/lsupdate.c
304
ls_retrans_list_add(struct nbr *nbr, struct lsa_hdr *lsa,
usr.sbin/ospf6d/lsupdate.c
311
if ((ref = lsa_cache_get(lsa)) == NULL)
usr.sbin/ospf6d/rde.c
1118
rde_req_list_add(struct rde_nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospf6d/rde.c
1126
le->type = lsa->type;
usr.sbin/ospf6d/rde.c
1127
le->ls_id = lsa->ls_id;
usr.sbin/ospf6d/rde.c
1128
le->adv_rtr = lsa->adv_rtr;
usr.sbin/ospf6d/rde.c
1205
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1215
if ((lsa = orig_asext_lsa(kr, DEFAULT_AGE))) {
usr.sbin/ospf6d/rde.c
1216
v = lsa_find(NULL, lsa->hdr.type, lsa->hdr.ls_id,
usr.sbin/ospf6d/rde.c
1217
lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde.c
1218
lsa_merge(nbrself, lsa, v);
usr.sbin/ospf6d/rde.c
1226
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1233
if ((lsa = orig_asext_lsa(kr, MAX_AGE))) {
usr.sbin/ospf6d/rde.c
1234
v = lsa_find(NULL, lsa->hdr.type, lsa->hdr.ls_id,
usr.sbin/ospf6d/rde.c
1235
lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde.c
1242
lsa_merge(nbrself, lsa, v);
usr.sbin/ospf6d/rde.c
1244
free(lsa);
usr.sbin/ospf6d/rde.c
1256
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1288
lsa = orig_sum_lsa(rte, area, type, rte->invalid);
usr.sbin/ospf6d/rde.c
1289
lsa_merge(rde_nbr_self(area), lsa, v);
usr.sbin/ospf6d/rde.c
1307
append_prefix_lsa(struct lsa **lsa, u_int16_t *len, struct lsa_prefix *prefix)
usr.sbin/ospf6d/rde.c
1320
if ((new_lsa = realloc(*lsa, new_len)) == NULL)
usr.sbin/ospf6d/rde.c
1327
*lsa = (struct lsa *)new_lsa;
usr.sbin/ospf6d/rde.c
1355
prefix_tree_add(struct prefix_tree *tree, struct lsa_link *lsa)
usr.sbin/ospf6d/rde.c
1364
cur_prefix = (char *)(lsa + 1);
usr.sbin/ospf6d/rde.c
1366
for (i = 0; i < ntohl(lsa->numprefix); i++) {
usr.sbin/ospf6d/rde.c
1397
struct lsa *
usr.sbin/ospf6d/rde.c
1400
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1425
prefix_tree_add(&tree, &v->lsa->data.link);
usr.sbin/ospf6d/rde.c
1440
prefix_tree_add(&tree, &v->lsa->data.link);
usr.sbin/ospf6d/rde.c
1448
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospf6d/rde.c
1451
lsa->data.pref_intra.ref_type = htons(LSA_TYPE_NETWORK);
usr.sbin/ospf6d/rde.c
1452
lsa->data.pref_intra.ref_ls_id = htonl(iface->ifindex);
usr.sbin/ospf6d/rde.c
1453
lsa->data.pref_intra.ref_adv_rtr = rde_router_id();
usr.sbin/ospf6d/rde.c
1457
append_prefix_lsa(&lsa, &len, node->prefix);
usr.sbin/ospf6d/rde.c
1461
lsa->data.pref_intra.numprefix = htons(numprefix);
usr.sbin/ospf6d/rde.c
1468
lsa->hdr.age = numprefix == 0 ? htons(MAX_AGE) : htons(DEFAULT_AGE);
usr.sbin/ospf6d/rde.c
1469
lsa->hdr.type = htons(LSA_TYPE_INTRA_A_PREFIX);
usr.sbin/ospf6d/rde.c
1470
lsa->hdr.ls_id = htonl(iface->ifindex);
usr.sbin/ospf6d/rde.c
1471
lsa->hdr.adv_rtr = rde_router_id();
usr.sbin/ospf6d/rde.c
1472
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospf6d/rde.c
1473
lsa->hdr.len = htons(len);
usr.sbin/ospf6d/rde.c
1474
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde.c
1476
return lsa;
usr.sbin/ospf6d/rde.c
1479
struct lsa *
usr.sbin/ospf6d/rde.c
1484
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1494
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospf6d/rde.c
1497
lsa->data.pref_intra.ref_type = htons(LSA_TYPE_ROUTER);
usr.sbin/ospf6d/rde.c
1498
lsa->data.pref_intra.ref_ls_id = 0;
usr.sbin/ospf6d/rde.c
1499
lsa->data.pref_intra.ref_adv_rtr = rde_router_id();
usr.sbin/ospf6d/rde.c
1575
append_prefix_lsa(&lsa, &len, lsa_prefix);
usr.sbin/ospf6d/rde.c
1586
free(lsa);
usr.sbin/ospf6d/rde.c
1590
lsa->data.pref_intra.numprefix = htons(numprefix);
usr.sbin/ospf6d/rde.c
1594
lsa->hdr.age = numprefix == 0 ? htons(MAX_AGE) : htons(DEFAULT_AGE);
usr.sbin/ospf6d/rde.c
1595
lsa->hdr.type = htons(LSA_TYPE_INTRA_A_PREFIX);
usr.sbin/ospf6d/rde.c
1596
lsa->hdr.ls_id = htonl(LS_ID_INTRA_RTR);
usr.sbin/ospf6d/rde.c
1597
lsa->hdr.adv_rtr = rde_router_id();
usr.sbin/ospf6d/rde.c
1598
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospf6d/rde.c
1599
lsa->hdr.len = htons(len);
usr.sbin/ospf6d/rde.c
1600
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde.c
1602
return lsa;
usr.sbin/ospf6d/rde.c
1608
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1617
lsa = orig_intra_lsa_net(area, iface, old);
usr.sbin/ospf6d/rde.c
1618
if (lsa)
usr.sbin/ospf6d/rde.c
1619
lsa_merge(rde_nbr_self(area), lsa, old);
usr.sbin/ospf6d/rde.c
1625
lsa = orig_intra_lsa_rtr(area, old);
usr.sbin/ospf6d/rde.c
1626
if (lsa)
usr.sbin/ospf6d/rde.c
1627
lsa_merge(rde_nbr_self(area), lsa, old);
usr.sbin/ospf6d/rde.c
1631
comp_asext(struct lsa *a, struct lsa *b)
usr.sbin/ospf6d/rde.c
1642
struct lsa *
usr.sbin/ospf6d/rde.c
1645
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1663
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospf6d/rde.c
1670
lsa->hdr.age = htons(age);
usr.sbin/ospf6d/rde.c
1671
lsa->hdr.type = htons(LSA_TYPE_EXTERNAL);
usr.sbin/ospf6d/rde.c
1672
lsa->hdr.adv_rtr = rdeconf->rtr_id.s_addr;
usr.sbin/ospf6d/rde.c
1673
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospf6d/rde.c
1674
lsa->hdr.len = htons(len);
usr.sbin/ospf6d/rde.c
1676
lsa->data.asext.prefix.prefixlen = kr->prefixlen;
usr.sbin/ospf6d/rde.c
1677
memcpy((char *)lsa + sizeof(struct lsa_hdr) + sizeof(struct lsa_asext),
usr.sbin/ospf6d/rde.c
1680
lsa->hdr.ls_id = lsa_find_lsid(&asext_tree, comp_asext, lsa);
usr.sbin/ospf6d/rde.c
1688
v = lsa_find(NULL, lsa->hdr.type, lsa->hdr.ls_id,
usr.sbin/ospf6d/rde.c
1689
lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde.c
1691
kr->metric = ntohl(v->lsa->data.asext.metric);
usr.sbin/ospf6d/rde.c
1693
memcpy(&ext_tag, (char *)v->lsa + ext_off,
usr.sbin/ospf6d/rde.c
1702
lsa->data.asext.metric = htonl(kr->metric | LSA_ASEXT_T_FLAG);
usr.sbin/ospf6d/rde.c
1704
memcpy((char *)lsa + ext_off, &ext_tag, sizeof(ext_tag));
usr.sbin/ospf6d/rde.c
1706
lsa->data.asext.metric = htonl(kr->metric);
usr.sbin/ospf6d/rde.c
1709
lsa->hdr.ls_chksum = 0;
usr.sbin/ospf6d/rde.c
1710
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde.c
1712
return (lsa);
usr.sbin/ospf6d/rde.c
1715
struct lsa *
usr.sbin/ospf6d/rde.c
1719
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
1723
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospf6d/rde.c
1727
lsa->hdr.age = htons(invalid ? MAX_AGE : DEFAULT_AGE);
usr.sbin/ospf6d/rde.c
1728
lsa->hdr.type = type;
usr.sbin/ospf6d/rde.c
1729
lsa->hdr.adv_rtr = rdeconf->rtr_id.s_addr;
usr.sbin/ospf6d/rde.c
1730
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospf6d/rde.c
1731
lsa->hdr.len = htons(len);
usr.sbin/ospf6d/rde.c
1739
lsa->hdr.ls_id = rte->prefix.s_addr;
usr.sbin/ospf6d/rde.c
1741
lsa->data.sum.mask = prefixlen2mask(rte->prefixlen);
usr.sbin/ospf6d/rde.c
1743
lsa->data.sum.mask = 0; /* must be zero per RFC */
usr.sbin/ospf6d/rde.c
1745
lsa->data.sum.metric = htonl(rte->cost & LSA_METRIC_MASK);
usr.sbin/ospf6d/rde.c
1747
lsa->hdr.ls_chksum = 0;
usr.sbin/ospf6d/rde.c
1748
lsa->hdr.ls_chksum =
usr.sbin/ospf6d/rde.c
1749
htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde.c
1751
return (lsa);
usr.sbin/ospf6d/rde.c
271
struct lsa *lsa;
usr.sbin/ospf6d/rde.c
377
db_hdr = &v->lsa->hdr;
usr.sbin/ospf6d/rde.c
418
imsg.hdr.peerid, 0, -1, v->lsa,
usr.sbin/ospf6d/rde.c
419
ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde.c
431
lsa = malloc(imsg.hdr.len - IMSG_HEADER_SIZE);
usr.sbin/ospf6d/rde.c
432
if (lsa == NULL)
usr.sbin/ospf6d/rde.c
434
memcpy(lsa, imsg.data, imsg.hdr.len - IMSG_HEADER_SIZE);
usr.sbin/ospf6d/rde.c
436
if (!lsa_check(nbr, lsa,
usr.sbin/ospf6d/rde.c
438
free(lsa);
usr.sbin/ospf6d/rde.c
442
v = lsa_find(nbr->iface, lsa->hdr.type, lsa->hdr.ls_id,
usr.sbin/ospf6d/rde.c
443
lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde.c
447
db_hdr = &v->lsa->hdr;
usr.sbin/ospf6d/rde.c
450
lsa_merge(nbr, lsa, v);
usr.sbin/ospf6d/rde.c
455
r = lsa_newer(&lsa->hdr, db_hdr);
usr.sbin/ospf6d/rde.c
460
free(lsa);
usr.sbin/ospf6d/rde.c
464
rde_req_list_del(nbr, &lsa->hdr);
usr.sbin/ospf6d/rde.c
466
if (!(self = lsa_self(nbr, lsa, v)))
usr.sbin/ospf6d/rde.c
467
if (lsa_add(nbr, lsa))
usr.sbin/ospf6d/rde.c
473
imsg.hdr.peerid, 0, -1, lsa,
usr.sbin/ospf6d/rde.c
474
ntohs(lsa->hdr.len));
usr.sbin/ospf6d/rde.c
480
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde.c
483
free(lsa);
usr.sbin/ospf6d/rde.c
493
if (rde_req_list_exists(nbr, &lsa->hdr)) {
usr.sbin/ospf6d/rde.c
497
free(lsa);
usr.sbin/ospf6d/rde.c
502
free(lsa);
usr.sbin/ospf6d/rde.c
515
imsg.hdr.peerid, 0, -1, v->lsa,
usr.sbin/ospf6d/rde.c
516
ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde.c
520
imsg.hdr.peerid, 0, -1, &lsa->hdr,
usr.sbin/ospf6d/rde.c
521
sizeof(lsa->hdr));
usr.sbin/ospf6d/rde.c
522
free(lsa);
usr.sbin/ospf6d/rde.c
543
db_hdr = &v->lsa->hdr;
usr.sbin/ospf6d/rde.c
66
int comp_asext(struct lsa *, struct lsa *);
usr.sbin/ospf6d/rde.c
67
struct lsa *orig_asext_lsa(struct kroute *, u_int16_t);
usr.sbin/ospf6d/rde.c
68
struct lsa *orig_sum_lsa(struct rt_node *, struct area *, u_int8_t, int);
usr.sbin/ospf6d/rde.c
69
struct lsa *orig_intra_lsa_net(struct area *, struct iface *,
usr.sbin/ospf6d/rde.c
71
struct lsa *orig_intra_lsa_rtr(struct area *, struct vertex *);
usr.sbin/ospf6d/rde.c
72
void append_prefix_lsa(struct lsa **, u_int16_t *,
usr.sbin/ospf6d/rde.h
147
int lsa_check(struct rde_nbr *, struct lsa *, u_int16_t);
usr.sbin/ospf6d/rde.h
148
int lsa_self(struct rde_nbr *, struct lsa *, struct vertex *);
usr.sbin/ospf6d/rde.h
149
int lsa_add(struct rde_nbr *, struct lsa *);
usr.sbin/ospf6d/rde.h
158
int (*)(struct lsa *, struct lsa *), struct lsa *);
usr.sbin/ospf6d/rde.h
162
void lsa_merge(struct rde_nbr *, struct lsa *, struct vertex *);
usr.sbin/ospf6d/rde.h
44
struct lsa *lsa;
usr.sbin/ospf6d/rde_lsdb.c
103
free(v->lsa);
usr.sbin/ospf6d/rde_lsdb.c
186
lsa_check(struct rde_nbr *nbr, struct lsa *lsa, u_int16_t len)
usr.sbin/ospf6d/rde_lsdb.c
190
if (len < sizeof(lsa->hdr)) {
usr.sbin/ospf6d/rde_lsdb.c
194
if (ntohs(lsa->hdr.len) != len) {
usr.sbin/ospf6d/rde_lsdb.c
199
if (iso_cksum(lsa, len, 0)) {
usr.sbin/ospf6d/rde_lsdb.c
205
if ((ntohs(lsa->hdr.age) < 1 && !nbr->self) ||
usr.sbin/ospf6d/rde_lsdb.c
206
ntohs(lsa->hdr.age) > MAX_AGE) {
usr.sbin/ospf6d/rde_lsdb.c
212
if (ntohl(lsa->hdr.seq_num) == RESV_SEQ_NUM) {
usr.sbin/ospf6d/rde_lsdb.c
217
switch (ntohs(lsa->hdr.type)) {
usr.sbin/ospf6d/rde_lsdb.c
219
if (!lsa_link_check(lsa, len))
usr.sbin/ospf6d/rde_lsdb.c
223
if (len < sizeof(lsa->hdr) + sizeof(struct lsa_rtr)) {
usr.sbin/ospf6d/rde_lsdb.c
227
len -= sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
usr.sbin/ospf6d/rde_lsdb.c
235
len < sizeof(lsa->hdr) + sizeof(u_int32_t)) {
usr.sbin/ospf6d/rde_lsdb.c
241
if (len < sizeof(lsa->hdr) + sizeof(lsa->data.pref_sum)) {
usr.sbin/ospf6d/rde_lsdb.c
245
metric = ntohl(lsa->data.pref_sum.metric);
usr.sbin/ospf6d/rde_lsdb.c
250
if (lsa_get_prefix(((char *)lsa) + sizeof(lsa->hdr) +
usr.sbin/ospf6d/rde_lsdb.c
251
sizeof(lsa->data.pref_sum),
usr.sbin/ospf6d/rde_lsdb.c
252
len - sizeof(lsa->hdr) + sizeof(lsa->data.pref_sum),
usr.sbin/ospf6d/rde_lsdb.c
260
if (len < sizeof(lsa->hdr) + sizeof(lsa->data.rtr_sum)) {
usr.sbin/ospf6d/rde_lsdb.c
264
metric = ntohl(lsa->data.rtr_sum.metric);
usr.sbin/ospf6d/rde_lsdb.c
271
if (!lsa_intra_a_pref_check(lsa, len))
usr.sbin/ospf6d/rde_lsdb.c
278
if (!lsa_asext_check(lsa, len))
usr.sbin/ospf6d/rde_lsdb.c
282
log_warnx("lsa_check: unknown type %x", ntohs(lsa->hdr.type));
usr.sbin/ospf6d/rde_lsdb.c
287
if (lsa->hdr.age == htons(MAX_AGE) && !nbr->self && lsa_find(nbr->iface,
usr.sbin/ospf6d/rde_lsdb.c
288
lsa->hdr.type, lsa->hdr.ls_id, lsa->hdr.adv_rtr) == NULL &&
usr.sbin/ospf6d/rde_lsdb.c
294
rde_imsg_compose_ospfe(IMSG_LS_ACK, nbr->peerid, 0, &lsa->hdr,
usr.sbin/ospf6d/rde_lsdb.c
30
struct vertex *vertex_get(struct lsa *, struct rde_nbr *, struct lsa_tree *);
usr.sbin/ospf6d/rde_lsdb.c
303
lsa_link_check(struct lsa *lsa, u_int16_t len)
usr.sbin/ospf6d/rde_lsdb.c
305
char *buf = (char *)lsa;
usr.sbin/ospf6d/rde_lsdb.c
310
llink = (struct lsa_link *)(buf + sizeof(lsa->hdr));
usr.sbin/ospf6d/rde_lsdb.c
311
off = sizeof(lsa->hdr) + sizeof(struct lsa_link);
usr.sbin/ospf6d/rde_lsdb.c
32
int lsa_link_check(struct lsa *, u_int16_t);
usr.sbin/ospf6d/rde_lsdb.c
33
int lsa_intra_a_pref_check(struct lsa *, u_int16_t);
usr.sbin/ospf6d/rde_lsdb.c
335
lsa_intra_a_pref_check(struct lsa *lsa, u_int16_t len)
usr.sbin/ospf6d/rde_lsdb.c
337
char *buf = (char *)lsa;
usr.sbin/ospf6d/rde_lsdb.c
34
int lsa_asext_check(struct lsa *, u_int16_t);
usr.sbin/ospf6d/rde_lsdb.c
342
iap = (struct lsa_intra_prefix *)(buf + sizeof(lsa->hdr));
usr.sbin/ospf6d/rde_lsdb.c
343
off = sizeof(lsa->hdr) + sizeof(struct lsa_intra_prefix);
usr.sbin/ospf6d/rde_lsdb.c
368
lsa_asext_check(struct lsa *lsa, u_int16_t len)
usr.sbin/ospf6d/rde_lsdb.c
37
int lsa_equal(struct lsa *, struct lsa *);
usr.sbin/ospf6d/rde_lsdb.c
370
char *buf = (char *)lsa;
usr.sbin/ospf6d/rde_lsdb.c
378
asext = (struct lsa_asext *)(buf + sizeof(lsa->hdr));
usr.sbin/ospf6d/rde_lsdb.c
381
len < sizeof(lsa->hdr) + sizeof(*asext)) {
usr.sbin/ospf6d/rde_lsdb.c
386
total_len = sizeof(lsa->hdr) + sizeof(*asext);
usr.sbin/ospf6d/rde_lsdb.c
424
lsa_self(struct rde_nbr *nbr, struct lsa *lsa, struct vertex *v)
usr.sbin/ospf6d/rde_lsdb.c
426
struct lsa *dummy;
usr.sbin/ospf6d/rde_lsdb.c
431
if (rde_router_id() != lsa->hdr.adv_rtr)
usr.sbin/ospf6d/rde_lsdb.c
440
if ((dummy = malloc(ntohs(lsa->hdr.len))) == NULL)
usr.sbin/ospf6d/rde_lsdb.c
442
memcpy(dummy, lsa, ntohs(lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
459
v->lsa->hdr.seq_num = lsa->hdr.seq_num;
usr.sbin/ospf6d/rde_lsdb.c
465
lsa_add(struct rde_nbr *nbr, struct lsa *lsa)
usr.sbin/ospf6d/rde_lsdb.c
472
if (LSA_IS_SCOPE_AS(ntohs(lsa->hdr.type)))
usr.sbin/ospf6d/rde_lsdb.c
474
else if (LSA_IS_SCOPE_AREA(ntohs(lsa->hdr.type)))
usr.sbin/ospf6d/rde_lsdb.c
476
else if (LSA_IS_SCOPE_LLOCAL(ntohs(lsa->hdr.type)))
usr.sbin/ospf6d/rde_lsdb.c
481
new = vertex_get(lsa, nbr, tree);
usr.sbin/ospf6d/rde_lsdb.c
499
if (lsa_equal(new->lsa, old->lsa))
usr.sbin/ospf6d/rde_lsdb.c
506
if (ntohs(lsa->hdr.type) == LSA_TYPE_LINK)
usr.sbin/ospf6d/rde_lsdb.c
508
if (ntohs(lsa->hdr.type) != LSA_TYPE_EXTERNAL)
usr.sbin/ospf6d/rde_lsdb.c
516
if (nbr->self && ntohs(new->lsa->hdr.age) == DEFAULT_AGE)
usr.sbin/ospf6d/rde_lsdb.c
519
tv.tv_sec = MAX_AGE - ntohs(new->lsa->hdr.age);
usr.sbin/ospf6d/rde_lsdb.c
527
lsa_del(struct rde_nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospf6d/rde_lsdb.c
532
v = lsa_find(nbr->iface, lsa->type, lsa->ls_id, lsa->adv_rtr);
usr.sbin/ospf6d/rde_lsdb.c
564
age = ntohs(v->lsa->hdr.age);
usr.sbin/ospf6d/rde_lsdb.c
570
v->lsa->hdr.age = htons(age);
usr.sbin/ospf6d/rde_lsdb.c
660
lsa_find_lsid(struct lsa_tree *tree, int (*cmp)(struct lsa *, struct lsa *),
usr.sbin/ospf6d/rde_lsdb.c
661
struct lsa *lsa)
usr.sbin/ospf6d/rde_lsdb.c
669
key.adv_rtr = ntohl(lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde_lsdb.c
670
key.type = ntohs(lsa->hdr.type);
usr.sbin/ospf6d/rde_lsdb.c
68
vertex_get(struct lsa *lsa, struct rde_nbr *nbr, struct lsa_tree *tree)
usr.sbin/ospf6d/rde_lsdb.c
682
if (cmp(lsa, v->lsa) == 0) {
usr.sbin/ospf6d/rde_lsdb.c
707
nlinks += ((ntohs(v->lsa->hdr.len) -
usr.sbin/ospf6d/rde_lsdb.c
714
return ((ntohs(v->lsa->hdr.len) - sizeof(struct lsa_hdr) -
usr.sbin/ospf6d/rde_lsdb.c
734
if (ntohs(v->lsa->hdr.age) >= MAX_AGE) {
usr.sbin/ospf6d/rde_lsdb.c
736
nbr->peerid, 0, &v->lsa->hdr,
usr.sbin/ospf6d/rde_lsdb.c
737
ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
740
nbr->peerid, 0, &v->lsa->hdr,
usr.sbin/ospf6d/rde_lsdb.c
766
if (v->lsa->hdr.adv_rtr == rde_router_id())
usr.sbin/ospf6d/rde_lsdb.c
78
v->lsa = lsa;
usr.sbin/ospf6d/rde_lsdb.c
801
rde_imsg_compose_ospfe(imsg_type, 0, pid, &v->lsa->hdr,
usr.sbin/ospf6d/rde_lsdb.c
802
ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
815
if (ntohs(v->lsa->hdr.age) >= MAX_AGE) {
usr.sbin/ospf6d/rde_lsdb.c
82
v->ls_id = ntohl(lsa->hdr.ls_id);
usr.sbin/ospf6d/rde_lsdb.c
821
if (ntohs(v->lsa->hdr.type) == LSA_TYPE_LINK)
usr.sbin/ospf6d/rde_lsdb.c
823
if (ntohs(v->lsa->hdr.type) != LSA_TYPE_EXTERNAL)
usr.sbin/ospf6d/rde_lsdb.c
828
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
83
v->adv_rtr = ntohl(lsa->hdr.adv_rtr);
usr.sbin/ospf6d/rde_lsdb.c
835
tv.tv_sec = MAX_AGE - ntohs(v->lsa->hdr.age);
usr.sbin/ospf6d/rde_lsdb.c
84
v->type = ntohs(lsa->hdr.type);
usr.sbin/ospf6d/rde_lsdb.c
843
if (v->self && ntohs(v->lsa->hdr.age) < MAX_AGE)
usr.sbin/ospf6d/rde_lsdb.c
847
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
859
if (v->self && ntohs(v->lsa->hdr.age) >= MAX_AGE)
usr.sbin/ospf6d/rde_lsdb.c
861
v->lsa->hdr.age = htons(MAX_AGE);
usr.sbin/ospf6d/rde_lsdb.c
863
v->lsa->hdr.age = htons(DEFAULT_AGE);
usr.sbin/ospf6d/rde_lsdb.c
864
seqnum = ntohl(v->lsa->hdr.seq_num);
usr.sbin/ospf6d/rde_lsdb.c
868
v->lsa->hdr.seq_num = htonl(seqnum);
usr.sbin/ospf6d/rde_lsdb.c
871
len = ntohs(v->lsa->hdr.len);
usr.sbin/ospf6d/rde_lsdb.c
872
v->lsa->hdr.ls_chksum = 0;
usr.sbin/ospf6d/rde_lsdb.c
873
v->lsa->hdr.ls_chksum = htons(iso_cksum(v->lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde_lsdb.c
885
lsa_merge(struct rde_nbr *nbr, struct lsa *lsa, struct vertex *v)
usr.sbin/ospf6d/rde_lsdb.c
893
if (lsa_add(nbr, lsa))
usr.sbin/ospf6d/rde_lsdb.c
897
lsa, ntohs(lsa->hdr.len));
usr.sbin/ospf6d/rde_lsdb.c
902
lsa->hdr.seq_num = v->lsa->hdr.seq_num;
usr.sbin/ospf6d/rde_lsdb.c
904
len = ntohs(lsa->hdr.len);
usr.sbin/ospf6d/rde_lsdb.c
905
lsa->hdr.ls_chksum = 0;
usr.sbin/ospf6d/rde_lsdb.c
906
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospf6d/rde_lsdb.c
909
if (lsa_equal(lsa, v->lsa)) {
usr.sbin/ospf6d/rde_lsdb.c
910
free(lsa);
usr.sbin/ospf6d/rde_lsdb.c
915
free(v->lsa);
usr.sbin/ospf6d/rde_lsdb.c
916
v->lsa = lsa;
usr.sbin/ospf6d/rde_lsdb.c
950
v->lsa->hdr.age = htons(MAX_AGE);
usr.sbin/ospf6d/rde_lsdb.c
957
lsa_equal(struct lsa *a, struct lsa *b)
usr.sbin/ospf6d/rde_spf.c
1110
rtr_link = (struct lsa_rtr_link *)((char *)v->lsa +
usr.sbin/ospf6d/rde_spf.c
1111
sizeof(v->lsa->hdr) + sizeof(struct lsa_rtr));
usr.sbin/ospf6d/rde_spf.c
1112
frag_nlinks = ((ntohs(v->lsa->hdr.len) -
usr.sbin/ospf6d/rde_spf.c
1134
char *buf = (char *)v->lsa;
usr.sbin/ospf6d/rde_spf.c
1140
net_link = (struct lsa_net_link *)(buf + sizeof(v->lsa->hdr) +
usr.sbin/ospf6d/rde_spf.c
115
if (ntohs(w->lsa->hdr.age) == MAX_AGE)
usr.sbin/ospf6d/rde_spf.c
212
if (ntohs(v->lsa->hdr.age) == MAX_AGE)
usr.sbin/ospf6d/rde_spf.c
221
flags = LSA_24_GETHI(ntohl(v->lsa->data.rtr.opts));
usr.sbin/ospf6d/rde_spf.c
234
iap = &v->lsa->data.pref_intra;
usr.sbin/ospf6d/rde_spf.c
245
flags = LSA_24_GETHI(ntohl(w->lsa->data.rtr.opts));
usr.sbin/ospf6d/rde_spf.c
272
off = sizeof(v->lsa->hdr) + sizeof(struct lsa_intra_prefix);
usr.sbin/ospf6d/rde_spf.c
273
for (i = 0; i < ntohs(v->lsa->data.pref_intra.numprefix); i++) {
usr.sbin/ospf6d/rde_spf.c
274
prefix = (struct lsa_prefix *)((char *)(v->lsa) + off);
usr.sbin/ospf6d/rde_spf.c
311
off = sizeof(v->lsa->hdr) + sizeof(struct lsa_prefix_sum);
usr.sbin/ospf6d/rde_spf.c
312
prefix = (struct lsa_prefix *)((char *)(v->lsa) + off);
usr.sbin/ospf6d/rde_spf.c
320
w->cost + (ntohs(v->lsa->data.rtr_sum.metric) &
usr.sbin/ospf6d/rde_spf.c
345
bcopy(&v->lsa->data.rtr_sum.dest_rtr_id, &ia6.s6_addr[12],
usr.sbin/ospf6d/rde_spf.c
349
(ntohs(v->lsa->data.rtr_sum.metric) & LSA_METRIC_MASK), 0,
usr.sbin/ospf6d/rde_spf.c
370
if (ntohs(v->lsa->hdr.age) == MAX_AGE ||
usr.sbin/ospf6d/rde_spf.c
371
(ntohl(v->lsa->data.asext.metric) & LSA_METRIC_MASK) >=
usr.sbin/ospf6d/rde_spf.c
387
prefix = &v->lsa->data.asext.prefix;
usr.sbin/ospf6d/rde_spf.c
395
metric = ntohl(v->lsa->data.asext.metric);
usr.sbin/ospf6d/rde_spf.c
484
return &link->lsa->data.link.lladdr;
usr.sbin/ospf6d/rde_spf.c
511
rtr_link->nbr_rtr_id == parent->lsa->hdr.adv_rtr &&
usr.sbin/ospf6d/rde_spf.c
512
rtr_link->nbr_iface_id == parent->lsa->hdr.ls_id) {
usr.sbin/ospfctl/ospfctl.c
265
struct lsa *lsa;
usr.sbin/ospfctl/ospfctl.c
314
lsa = imsg->data;
usr.sbin/ospfctl/ospfctl.c
315
output->db(lsa, area_id, lasttype, ifname);
usr.sbin/ospfctl/ospfctl.c
316
lasttype = lsa->hdr.type;
usr.sbin/ospfctl/ospfctl.h
30
void (*db)(struct lsa *, struct in_addr, u_int8_t,
usr.sbin/ospfctl/output.c
478
show_db_hdr_msg_detail(struct lsa_hdr *lsa)
usr.sbin/ospfctl/output.c
480
printf("LS age: %d\n", ntohs(lsa->age));
usr.sbin/ospfctl/output.c
481
printf("Options: %s\n", print_ospf_options(lsa->opts));
usr.sbin/ospfctl/output.c
482
printf("LS Type: %s\n", print_ls_type(lsa->type));
usr.sbin/ospfctl/output.c
484
switch (lsa->type) {
usr.sbin/ospfctl/output.c
486
printf("Link State ID: %s\n", log_id(lsa->ls_id));
usr.sbin/ospfctl/output.c
490
log_id(lsa->ls_id));
usr.sbin/ospfctl/output.c
493
printf("Link State ID: %s (Network ID)\n", log_id(lsa->ls_id));
usr.sbin/ospfctl/output.c
497
log_id(lsa->ls_id));
usr.sbin/ospfctl/output.c
501
log_id(lsa->ls_id));
usr.sbin/ospfctl/output.c
506
printf("Link State ID: %s Type %d ID %d\n", log_id(lsa->ls_id),
usr.sbin/ospfctl/output.c
507
LSA_24_GETHI(ntohl(lsa->ls_id)),
usr.sbin/ospfctl/output.c
508
LSA_24_GETLO(ntohl(lsa->ls_id)));
usr.sbin/ospfctl/output.c
512
printf("Advertising Router: %s\n", log_adv_rtr(lsa->adv_rtr));
usr.sbin/ospfctl/output.c
513
printf("LS Seq Number: 0x%08x\n", ntohl(lsa->seq_num));
usr.sbin/ospfctl/output.c
514
printf("Checksum: 0x%04x\n", ntohs(lsa->ls_chksum));
usr.sbin/ospfctl/output.c
515
printf("Length: %d\n", ntohs(lsa->len));
usr.sbin/ospfctl/output.c
519
show_db_simple(struct lsa_hdr *lsa, struct in_addr area_id, u_int8_t lasttype,
usr.sbin/ospfctl/output.c
522
if (lsa->type != lasttype) {
usr.sbin/ospfctl/output.c
523
show_database_head(area_id, ifname, lsa->type);
usr.sbin/ospfctl/output.c
528
log_id(lsa->ls_id), log_adv_rtr(lsa->adv_rtr),
usr.sbin/ospfctl/output.c
529
ntohs(lsa->age), ntohl(lsa->seq_num),
usr.sbin/ospfctl/output.c
530
ntohs(lsa->ls_chksum));
usr.sbin/ospfctl/output.c
533
show_db(struct lsa *lsa, struct in_addr area_id, u_int8_t lasttype,
usr.sbin/ospfctl/output.c
541
if (lsa->hdr.type != lasttype)
usr.sbin/ospfctl/output.c
542
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospfctl/output.c
543
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospfctl/output.c
545
switch (lsa->hdr.type) {
usr.sbin/ospfctl/output.c
547
addr.s_addr = lsa->data.asext.mask;
usr.sbin/ospfctl/output.c
550
asext = (struct lsa_asext *)((char *)lsa + sizeof(lsa->hdr));
usr.sbin/ospfctl/output.c
553
if (ntohl(lsa->data.asext.metric) & LSA_ASEXT_E_FLAG)
usr.sbin/ospfctl/output.c
564
addr.s_addr = lsa->data.net.mask;
usr.sbin/ospfctl/output.c
567
nlinks = (ntohs(lsa->hdr.len) - sizeof(struct lsa_hdr)
usr.sbin/ospfctl/output.c
569
off = sizeof(lsa->hdr) + sizeof(u_int32_t);
usr.sbin/ospfctl/output.c
573
addr.s_addr = lsa->data.net.att_rtr[i];
usr.sbin/ospfctl/output.c
580
printf("Flags: %s\n", print_ospf_flags(lsa->data.rtr.flags));
usr.sbin/ospfctl/output.c
581
nlinks = ntohs(lsa->data.rtr.nlinks);
usr.sbin/ospfctl/output.c
584
off = sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
usr.sbin/ospfctl/output.c
587
rtr_link = (struct lsa_rtr_link *)((char *)lsa + off);
usr.sbin/ospfctl/output.c
630
if (lsa->hdr.type != lasttype)
usr.sbin/ospfctl/output.c
631
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospfctl/output.c
633
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospfctl/output.c
634
addr.s_addr = lsa->data.sum.mask;
usr.sbin/ospfctl/output.c
636
printf("Metric: %d\n\n", ntohl(lsa->data.sum.metric) &
usr.sbin/ospfctl/output.c
642
if (lsa->hdr.type != lasttype)
usr.sbin/ospfctl/output.c
643
show_database_head(area_id, ifname, lsa->hdr.type);
usr.sbin/ospfctl/output.c
645
show_db_hdr_msg_detail(&lsa->hdr);
usr.sbin/ospfd/database.c
354
db_sum_list_add(struct nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospfd/database.c
362
le->le_lsa = lsa;
usr.sbin/ospfd/lsack.c
184
ls_ack_list_add(struct iface *iface, struct lsa_hdr *lsa)
usr.sbin/ospfd/lsack.c
188
if (lsa == NULL)
usr.sbin/ospfd/lsack.c
198
le->le_lsa = lsa;
usr.sbin/ospfd/lsreq.c
117
ls_req_list_add(struct nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospfd/lsreq.c
121
if (lsa == NULL)
usr.sbin/ospfd/lsreq.c
128
le->le_lsa = lsa;
usr.sbin/ospfd/lsupdate.c
236
struct lsa_hdr lsa;
usr.sbin/ospfd/lsupdate.c
265
if (len < sizeof(lsa)) {
usr.sbin/ospfd/lsupdate.c
271
memcpy(&lsa, buf, sizeof(lsa));
usr.sbin/ospfd/lsupdate.c
272
if (len < ntohs(lsa.len)) {
usr.sbin/ospfd/lsupdate.c
279
buf, ntohs(lsa.len));
usr.sbin/ospfd/lsupdate.c
280
buf += ntohs(lsa.len);
usr.sbin/ospfd/lsupdate.c
281
len -= ntohs(lsa.len);
usr.sbin/ospfd/lsupdate.c
297
ls_retrans_list_add(struct nbr *nbr, struct lsa_hdr *lsa,
usr.sbin/ospfd/lsupdate.c
304
if ((ref = lsa_cache_get(lsa)) == NULL)
usr.sbin/ospfd/rde.c
1081
rde_req_list_add(struct rde_nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospfd/rde.c
1089
le->type = lsa->type;
usr.sbin/ospfd/rde.c
1090
le->ls_id = lsa->ls_id;
usr.sbin/ospfd/rde.c
1091
le->adv_rtr = lsa->adv_rtr;
usr.sbin/ospfd/rde.c
1198
struct lsa *lsa;
usr.sbin/ospfd/rde.c
1232
while (v && v->lsa->data.asext.mask != mask) {
usr.sbin/ospfd/rde.c
1234
if (ntohl(v->lsa->data.asext.mask) < ntohl(mask)) {
usr.sbin/ospfd/rde.c
1236
mask = v->lsa->data.asext.mask;
usr.sbin/ospfd/rde.c
1237
oan = asext_find(v->lsa->hdr.ls_id & mask,
usr.sbin/ospfd/rde.c
1264
lsa = orig_asext_lsa(kr, an->ls_id, DEFAULT_AGE);
usr.sbin/ospfd/rde.c
1265
lsa_merge(nbrself, lsa, v);
usr.sbin/ospfd/rde.c
1270
lsa = orig_asext_lsa(&oan->r, oan->ls_id, DEFAULT_AGE);
usr.sbin/ospfd/rde.c
1271
lsa_merge(nbrself, lsa, v);
usr.sbin/ospfd/rde.c
1280
struct lsa *lsa;
usr.sbin/ospfd/rde.c
1300
kr->metric = ntohl(v->lsa->data.asext.metric);
usr.sbin/ospfd/rde.c
1301
kr->ext_tag = ntohl(v->lsa->data.asext.ext_tag);
usr.sbin/ospfd/rde.c
1305
lsa = orig_asext_lsa(kr, an->ls_id, MAX_AGE);
usr.sbin/ospfd/rde.c
1306
lsa_merge(nbrself, lsa, v);
usr.sbin/ospfd/rde.c
1324
struct lsa *
usr.sbin/ospfd/rde.c
1327
struct lsa *lsa;
usr.sbin/ospfd/rde.c
1332
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospfd/rde.c
1339
lsa->hdr.age = htons(age);
usr.sbin/ospfd/rde.c
1340
lsa->hdr.opts = area_ospf_options(NULL);
usr.sbin/ospfd/rde.c
1341
lsa->hdr.type = LSA_TYPE_EXTERNAL;
usr.sbin/ospfd/rde.c
1342
lsa->hdr.adv_rtr = rdeconf->rtr_id.s_addr;
usr.sbin/ospfd/rde.c
1344
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospfd/rde.c
1345
lsa->hdr.len = htons(len);
usr.sbin/ospfd/rde.c
1348
lsa->hdr.ls_id = ls_id;
usr.sbin/ospfd/rde.c
1349
lsa->data.asext.mask = prefixlen2mask(kr->prefixlen);
usr.sbin/ospfd/rde.c
1363
lsa->data.asext.fw_addr = 0;
usr.sbin/ospfd/rde.c
1366
lsa->data.asext.fw_addr = kr->nexthop.s_addr;
usr.sbin/ospfd/rde.c
1368
lsa->data.asext.fw_addr = 0;
usr.sbin/ospfd/rde.c
1370
lsa->data.asext.metric = htonl(kr->metric);
usr.sbin/ospfd/rde.c
1371
lsa->data.asext.ext_tag = htonl(kr->ext_tag);
usr.sbin/ospfd/rde.c
1373
lsa->hdr.ls_chksum = 0;
usr.sbin/ospfd/rde.c
1374
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospfd/rde.c
1376
return (lsa);
usr.sbin/ospfd/rde.c
1388
struct lsa *lsa;
usr.sbin/ospfd/rde.c
1435
lsa = orig_sum_lsa(rte, area, type, rte->invalid);
usr.sbin/ospfd/rde.c
1436
lsa_merge(rde_nbr_self(area), lsa, v);
usr.sbin/ospfd/rde.c
1447
struct lsa *
usr.sbin/ospfd/rde.c
1450
struct lsa *lsa;
usr.sbin/ospfd/rde.c
1454
if ((lsa = calloc(1, len)) == NULL)
usr.sbin/ospfd/rde.c
1458
lsa->hdr.age = htons(invalid ? MAX_AGE : DEFAULT_AGE);
usr.sbin/ospfd/rde.c
1459
lsa->hdr.opts = area_ospf_options(area);
usr.sbin/ospfd/rde.c
1460
lsa->hdr.type = type;
usr.sbin/ospfd/rde.c
1461
lsa->hdr.adv_rtr = rdeconf->rtr_id.s_addr;
usr.sbin/ospfd/rde.c
1462
lsa->hdr.seq_num = htonl(INIT_SEQ_NUM);
usr.sbin/ospfd/rde.c
1463
lsa->hdr.len = htons(len);
usr.sbin/ospfd/rde.c
1471
lsa->hdr.ls_id = rte->prefix.s_addr;
usr.sbin/ospfd/rde.c
1473
lsa->data.sum.mask = prefixlen2mask(rte->prefixlen);
usr.sbin/ospfd/rde.c
1475
lsa->data.sum.mask = 0; /* must be zero per RFC */
usr.sbin/ospfd/rde.c
1477
lsa->data.sum.metric = htonl(rte->cost & LSA_METRIC_MASK);
usr.sbin/ospfd/rde.c
1479
lsa->hdr.ls_chksum = 0;
usr.sbin/ospfd/rde.c
1480
lsa->hdr.ls_chksum =
usr.sbin/ospfd/rde.c
1481
htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospfd/rde.c
1483
return (lsa);
usr.sbin/ospfd/rde.c
258
struct lsa *lsa;
usr.sbin/ospfd/rde.c
384
db_hdr = &v->lsa->hdr;
usr.sbin/ospfd/rde.c
431
imsg.hdr.peerid, 0, -1, v->lsa,
usr.sbin/ospfd/rde.c
432
ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde.c
444
lsa = malloc(imsg.hdr.len - IMSG_HEADER_SIZE);
usr.sbin/ospfd/rde.c
445
if (lsa == NULL)
usr.sbin/ospfd/rde.c
447
memcpy(lsa, imsg.data, imsg.hdr.len - IMSG_HEADER_SIZE);
usr.sbin/ospfd/rde.c
449
if (!lsa_check(nbr, lsa,
usr.sbin/ospfd/rde.c
451
free(lsa);
usr.sbin/ospfd/rde.c
455
v = lsa_find(nbr->iface, lsa->hdr.type, lsa->hdr.ls_id,
usr.sbin/ospfd/rde.c
456
lsa->hdr.adv_rtr);
usr.sbin/ospfd/rde.c
460
db_hdr = &v->lsa->hdr;
usr.sbin/ospfd/rde.c
463
lsa_merge(nbr, lsa, v);
usr.sbin/ospfd/rde.c
468
r = lsa_newer(&lsa->hdr, db_hdr);
usr.sbin/ospfd/rde.c
473
free(lsa);
usr.sbin/ospfd/rde.c
477
rde_req_list_del(nbr, &lsa->hdr);
usr.sbin/ospfd/rde.c
479
if (!(self = lsa_self(nbr, lsa, v)))
usr.sbin/ospfd/rde.c
480
if (lsa_add(nbr, lsa))
usr.sbin/ospfd/rde.c
486
imsg.hdr.peerid, 0, -1, lsa,
usr.sbin/ospfd/rde.c
487
ntohs(lsa->hdr.len));
usr.sbin/ospfd/rde.c
493
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde.c
496
free(lsa);
usr.sbin/ospfd/rde.c
506
if (rde_req_list_exists(nbr, &lsa->hdr)) {
usr.sbin/ospfd/rde.c
510
free(lsa);
usr.sbin/ospfd/rde.c
515
free(lsa);
usr.sbin/ospfd/rde.c
528
imsg.hdr.peerid, 0, -1, v->lsa,
usr.sbin/ospfd/rde.c
529
ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde.c
533
imsg.hdr.peerid, 0, -1, &lsa->hdr,
usr.sbin/ospfd/rde.c
534
sizeof(lsa->hdr));
usr.sbin/ospfd/rde.c
535
free(lsa);
usr.sbin/ospfd/rde.c
556
db_hdr = &v->lsa->hdr;
usr.sbin/ospfd/rde.c
64
struct lsa *orig_asext_lsa(struct kroute *, u_int32_t, u_int16_t);
usr.sbin/ospfd/rde.c
65
struct lsa *orig_sum_lsa(struct rt_node *, struct area *, u_int8_t, int);
usr.sbin/ospfd/rde.c
863
sumctl.ext_lsa_cksum += ntohs(v->lsa->hdr.ls_chksum);
usr.sbin/ospfd/rde.c
901
sumareactl.lsa_cksum += ntohs(v->lsa->hdr.ls_chksum);
usr.sbin/ospfd/rde.h
127
struct lsa *orig_sum_lsa(struct rt_node *, struct area *, u_int8_t, int);
usr.sbin/ospfd/rde.h
137
int lsa_check(struct rde_nbr *, struct lsa *, u_int16_t);
usr.sbin/ospfd/rde.h
138
int lsa_self(struct rde_nbr *, struct lsa *, struct vertex *);
usr.sbin/ospfd/rde.h
139
int lsa_add(struct rde_nbr *, struct lsa *);
usr.sbin/ospfd/rde.h
148
void lsa_merge(struct rde_nbr *, struct lsa *, struct vertex *);
usr.sbin/ospfd/rde.h
43
struct lsa *lsa;
usr.sbin/ospfd/rde_lsdb.c
102
free(v->lsa);
usr.sbin/ospfd/rde_lsdb.c
182
lsa_check(struct rde_nbr *nbr, struct lsa *lsa, u_int16_t len)
usr.sbin/ospfd/rde_lsdb.c
187
if (len < sizeof(lsa->hdr)) {
usr.sbin/ospfd/rde_lsdb.c
191
if (ntohs(lsa->hdr.len) != len) {
usr.sbin/ospfd/rde_lsdb.c
196
if (iso_cksum(lsa, len, 0)) {
usr.sbin/ospfd/rde_lsdb.c
202
if ((ntohs(lsa->hdr.age) < 1 && !nbr->self) ||
usr.sbin/ospfd/rde_lsdb.c
203
ntohs(lsa->hdr.age) > MAX_AGE) {
usr.sbin/ospfd/rde_lsdb.c
209
if (ntohl(lsa->hdr.seq_num) == RESV_SEQ_NUM) {
usr.sbin/ospfd/rde_lsdb.c
214
switch (lsa->hdr.type) {
usr.sbin/ospfd/rde_lsdb.c
216
if (!lsa_router_check(lsa, len))
usr.sbin/ospfd/rde_lsdb.c
221
len < sizeof(lsa->hdr) + sizeof(u_int32_t)) {
usr.sbin/ospfd/rde_lsdb.c
229
len < sizeof(lsa->hdr) + sizeof(lsa->data.sum)) {
usr.sbin/ospfd/rde_lsdb.c
233
metric = ntohl(lsa->data.sum.metric);
usr.sbin/ospfd/rde_lsdb.c
241
len < sizeof(lsa->hdr) + sizeof(lsa->data.asext)) {
usr.sbin/ospfd/rde_lsdb.c
245
metric = ntohl(lsa->data.asext.metric);
usr.sbin/ospfd/rde_lsdb.c
262
if (lsa->hdr.type == LSA_TYPE_AS_OPAQ && area->stub)
usr.sbin/ospfd/rde_lsdb.c
266
log_warnx("lsa_check: unknown type %u", lsa->hdr.type);
usr.sbin/ospfd/rde_lsdb.c
271
if (lsa->hdr.age == htons(MAX_AGE) && !nbr->self && lsa_find(nbr->iface,
usr.sbin/ospfd/rde_lsdb.c
272
lsa->hdr.type, lsa->hdr.ls_id, lsa->hdr.adv_rtr) == NULL &&
usr.sbin/ospfd/rde_lsdb.c
278
rde_imsg_compose_ospfe(IMSG_LS_ACK, nbr->peerid, 0, &lsa->hdr,
usr.sbin/ospfd/rde_lsdb.c
287
lsa_router_check(struct lsa *lsa, u_int16_t len)
usr.sbin/ospfd/rde_lsdb.c
290
char *buf = (char *)lsa;
usr.sbin/ospfd/rde_lsdb.c
293
off = sizeof(lsa->hdr) + sizeof(struct lsa_rtr);
usr.sbin/ospfd/rde_lsdb.c
299
if (lsa->hdr.ls_id != lsa->hdr.adv_rtr) {
usr.sbin/ospfd/rde_lsdb.c
30
struct vertex *vertex_get(struct lsa *, struct rde_nbr *, struct lsa_tree *);
usr.sbin/ospfd/rde_lsdb.c
304
nlinks = ntohs(lsa->data.rtr.nlinks);
usr.sbin/ospfd/rde_lsdb.c
32
int lsa_router_check(struct lsa *, u_int16_t);
usr.sbin/ospfd/rde_lsdb.c
331
lsa_self(struct rde_nbr *nbr, struct lsa *new, struct vertex *v)
usr.sbin/ospfd/rde_lsdb.c
334
struct lsa *dummy;
usr.sbin/ospfd/rde_lsdb.c
37
int lsa_equal(struct lsa *, struct lsa *);
usr.sbin/ospfd/rde_lsdb.c
375
v->lsa->hdr.seq_num = new->hdr.seq_num;
usr.sbin/ospfd/rde_lsdb.c
381
lsa_add(struct rde_nbr *nbr, struct lsa *lsa)
usr.sbin/ospfd/rde_lsdb.c
388
if (lsa->hdr.type == LSA_TYPE_EXTERNAL ||
usr.sbin/ospfd/rde_lsdb.c
389
lsa->hdr.type == LSA_TYPE_AS_OPAQ)
usr.sbin/ospfd/rde_lsdb.c
391
else if (lsa->hdr.type == LSA_TYPE_LINK_OPAQ)
usr.sbin/ospfd/rde_lsdb.c
396
new = vertex_get(lsa, nbr, tree);
usr.sbin/ospfd/rde_lsdb.c
414
if (lsa_equal(new->lsa, old->lsa))
usr.sbin/ospfd/rde_lsdb.c
421
if (lsa->hdr.type != LSA_TYPE_EXTERNAL &&
usr.sbin/ospfd/rde_lsdb.c
422
lsa->hdr.type != LSA_TYPE_AS_OPAQ)
usr.sbin/ospfd/rde_lsdb.c
430
if (nbr->self && ntohs(new->lsa->hdr.age) == DEFAULT_AGE)
usr.sbin/ospfd/rde_lsdb.c
433
tv.tv_sec = MAX_AGE - ntohs(new->lsa->hdr.age);
usr.sbin/ospfd/rde_lsdb.c
441
lsa_del(struct rde_nbr *nbr, struct lsa_hdr *lsa)
usr.sbin/ospfd/rde_lsdb.c
446
v = lsa_find(nbr->iface, lsa->type, lsa->ls_id, lsa->adv_rtr);
usr.sbin/ospfd/rde_lsdb.c
478
age = ntohs(v->lsa->hdr.age);
usr.sbin/ospfd/rde_lsdb.c
484
v->lsa->hdr.age = htons(age);
usr.sbin/ospfd/rde_lsdb.c
541
if (v->lsa->hdr.type == LSA_TYPE_NETWORK &&
usr.sbin/ospfd/rde_lsdb.c
542
v->lsa->hdr.ls_id == ls_id) {
usr.sbin/ospfd/rde_lsdb.c
559
return (ntohs(v->lsa->data.rtr.nlinks));
usr.sbin/ospfd/rde_lsdb.c
561
return ((ntohs(v->lsa->hdr.len) - sizeof(struct lsa_hdr)
usr.sbin/ospfd/rde_lsdb.c
587
if (ntohs(v->lsa->hdr.age) >= MAX_AGE)
usr.sbin/ospfd/rde_lsdb.c
589
0, &v->lsa->hdr, ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde_lsdb.c
592
nbr->peerid, 0, &v->lsa->hdr,
usr.sbin/ospfd/rde_lsdb.c
619
if (v->lsa->hdr.adv_rtr == rde_router_id())
usr.sbin/ospfd/rde_lsdb.c
652
rde_imsg_compose_ospfe(imsg_type, 0, pid, &v->lsa->hdr,
usr.sbin/ospfd/rde_lsdb.c
653
ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde_lsdb.c
666
if (ntohs(v->lsa->hdr.age) >= MAX_AGE) {
usr.sbin/ospfd/rde_lsdb.c
67
vertex_get(struct lsa *lsa, struct rde_nbr *nbr, struct lsa_tree *tree)
usr.sbin/ospfd/rde_lsdb.c
678
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde_lsdb.c
685
tv.tv_sec = MAX_AGE - ntohs(v->lsa->hdr.age);
usr.sbin/ospfd/rde_lsdb.c
693
if (v->self && ntohs(v->lsa->hdr.age) < MAX_AGE)
usr.sbin/ospfd/rde_lsdb.c
697
v->lsa, ntohs(v->lsa->hdr.len));
usr.sbin/ospfd/rde_lsdb.c
709
if (v->self && ntohs(v->lsa->hdr.age) >= MAX_AGE)
usr.sbin/ospfd/rde_lsdb.c
711
v->lsa->hdr.age = htons(MAX_AGE);
usr.sbin/ospfd/rde_lsdb.c
713
v->lsa->hdr.age = htons(DEFAULT_AGE);
usr.sbin/ospfd/rde_lsdb.c
714
seqnum = ntohl(v->lsa->hdr.seq_num);
usr.sbin/ospfd/rde_lsdb.c
718
v->lsa->hdr.seq_num = htonl(seqnum);
usr.sbin/ospfd/rde_lsdb.c
721
len = ntohs(v->lsa->hdr.len);
usr.sbin/ospfd/rde_lsdb.c
722
v->lsa->hdr.ls_chksum = 0;
usr.sbin/ospfd/rde_lsdb.c
723
v->lsa->hdr.ls_chksum = htons(iso_cksum(v->lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospfd/rde_lsdb.c
735
lsa_merge(struct rde_nbr *nbr, struct lsa *lsa, struct vertex *v)
usr.sbin/ospfd/rde_lsdb.c
743
if (lsa_add(nbr, lsa))
usr.sbin/ospfd/rde_lsdb.c
747
lsa, ntohs(lsa->hdr.len));
usr.sbin/ospfd/rde_lsdb.c
752
lsa->hdr.seq_num = v->lsa->hdr.seq_num;
usr.sbin/ospfd/rde_lsdb.c
754
len = ntohs(lsa->hdr.len);
usr.sbin/ospfd/rde_lsdb.c
755
lsa->hdr.ls_chksum = 0;
usr.sbin/ospfd/rde_lsdb.c
756
lsa->hdr.ls_chksum = htons(iso_cksum(lsa, len, LS_CKSUM_OFFSET));
usr.sbin/ospfd/rde_lsdb.c
759
if (lsa_equal(lsa, v->lsa)) {
usr.sbin/ospfd/rde_lsdb.c
760
free(lsa);
usr.sbin/ospfd/rde_lsdb.c
765
free(v->lsa);
usr.sbin/ospfd/rde_lsdb.c
766
v->lsa = lsa;
usr.sbin/ospfd/rde_lsdb.c
77
v->lsa = lsa;
usr.sbin/ospfd/rde_lsdb.c
799
v->lsa->hdr.age = htons(MAX_AGE);
usr.sbin/ospfd/rde_lsdb.c
81
v->ls_id = ntohl(lsa->hdr.ls_id);
usr.sbin/ospfd/rde_lsdb.c
811
struct lsa *lsa;
usr.sbin/ospfd/rde_lsdb.c
82
v->adv_rtr = ntohl(lsa->hdr.adv_rtr);
usr.sbin/ospfd/rde_lsdb.c
83
v->type = lsa->hdr.type;
usr.sbin/ospfd/rde_lsdb.c
832
lsa = orig_sum_lsa(&rn, area, LSA_TYPE_SUM_NETWORK, 0);
usr.sbin/ospfd/rde_lsdb.c
833
lsa_merge(rde_nbr_self(area), lsa, v);
usr.sbin/ospfd/rde_lsdb.c
852
lsa_equal(struct lsa *a, struct lsa *b)
usr.sbin/ospfd/rde_spf.c
1001
char *buf = (char *)v->lsa;
usr.sbin/ospfd/rde_spf.c
1007
off = sizeof(v->lsa->hdr) + sizeof(u_int32_t);
usr.sbin/ospfd/rde_spf.c
119
if (w->lsa->hdr.age == MAX_AGE)
usr.sbin/ospfd/rde_spf.c
184
if (ntohs(v->lsa->hdr.age) == MAX_AGE)
usr.sbin/ospfd/rde_spf.c
205
v->lsa->data.rtr.flags, 0);
usr.sbin/ospfd/rde_spf.c
209
if ((v->lsa->data.rtr.flags & (OSPF_RTR_B | OSPF_RTR_E)) == 0)
usr.sbin/ospfd/rde_spf.c
216
adv_rtr, PT_INTRA_AREA, DT_RTR, v->lsa->data.rtr.flags, 0);
usr.sbin/ospfd/rde_spf.c
222
addr.s_addr = htonl(v->ls_id) & v->lsa->data.net.mask;
usr.sbin/ospfd/rde_spf.c
224
rt_update(addr, mask2prefixlen(v->lsa->data.net.mask),
usr.sbin/ospfd/rde_spf.c
251
(ntohl(v->lsa->data.sum.metric) & LSA_METRIC_MASK);
usr.sbin/ospfd/rde_spf.c
258
addr.s_addr = htonl(v->ls_id) & v->lsa->data.sum.mask;
usr.sbin/ospfd/rde_spf.c
259
rt_update(addr, mask2prefixlen(v->lsa->data.sum.mask),
usr.sbin/ospfd/rde_spf.c
266
v->lsa->data.rtr.flags, 0);
usr.sbin/ospfd/rde_spf.c
289
if (ntohs(v->lsa->hdr.age) == MAX_AGE ||
usr.sbin/ospfd/rde_spf.c
290
(ntohl(v->lsa->data.asext.metric) & LSA_METRIC_MASK) >=
usr.sbin/ospfd/rde_spf.c
304
if (v->lsa->data.asext.fw_addr != 0 &&
usr.sbin/ospfd/rde_spf.c
305
(r = rt_lookup(DT_NET, v->lsa->data.asext.fw_addr)) == NULL)
usr.sbin/ospfd/rde_spf.c
308
if (v->lsa->data.asext.fw_addr != 0 &&
usr.sbin/ospfd/rde_spf.c
313
if (ntohl(v->lsa->data.asext.metric) & LSA_ASEXT_E_FLAG) {
usr.sbin/ospfd/rde_spf.c
315
cost2 = ntohl(v->lsa->data.asext.metric) &
usr.sbin/ospfd/rde_spf.c
319
v->cost = r->cost + (ntohl(v->lsa->data.asext.metric) &
usr.sbin/ospfd/rde_spf.c
327
addr.s_addr = htonl(v->ls_id) & v->lsa->data.asext.mask;
usr.sbin/ospfd/rde_spf.c
339
if (v->lsa->data.asext.fw_addr != 0 && rn->connected)
usr.sbin/ospfd/rde_spf.c
341
v->lsa->data.asext.fw_addr);
usr.sbin/ospfd/rde_spf.c
346
rt_update(addr, mask2prefixlen(v->lsa->data.asext.mask),
usr.sbin/ospfd/rde_spf.c
348
DT_NET, 0, ntohl(v->lsa->data.asext.ext_tag));
usr.sbin/ospfd/rde_spf.c
405
dst->lsa->data.net.mask) ==
usr.sbin/ospfd/rde_spf.c
407
dst->lsa->data.net.mask)) {
usr.sbin/ospfd/rde_spf.c
432
parent->lsa->data.net.mask) ==
usr.sbin/ospfd/rde_spf.c
434
parent->lsa->data.net.mask))
usr.sbin/ospfd/rde_spf.c
974
char *buf = (char *)v->lsa;
usr.sbin/ospfd/rde_spf.c
980
off = sizeof(v->lsa->hdr) + sizeof(struct lsa_rtr);
usr.sbin/tcpdump/ospf.h
213
struct lsa lsu_lsa[1]; /* may repeat */
usr.sbin/tcpdump/ospf6.h
267
struct lsa lsu_lsa[1]; /* may repeat */
usr.sbin/tcpdump/print-ospf.c
186
ospf_print_lsa(const struct lsa *lsap)
usr.sbin/tcpdump/print-ospf.c
364
const struct lsa *lsap;
usr.sbin/tcpdump/print-ospf.c
465
lsap = (struct lsa *)((u_char *)lsap +
usr.sbin/tcpdump/print-ospf.c
80
static int ospf_print_lsa(const struct lsa *);
usr.sbin/tcpdump/print-ospf6.c
246
ospf6_print_lsa(const struct lsa *lsap)
usr.sbin/tcpdump/print-ospf6.c
474
const struct lsa *lsap;
usr.sbin/tcpdump/print-ospf6.c
576
lsap = (struct lsa *)((u_char *)lsap +
usr.sbin/tcpdump/print-ospf6.c
84
static int ospf6_print_lsa(const struct lsa *);