lsa
interpret_ospf_lsa(int flags, struct lsa *lsa, uchar_t *fragend)
interpret_ospf_lsa_hdr(flags, &lsa->ls_hdr);
ls_end = (uchar_t *)lsa + ntohs(lsa->ls_hdr.ls_length);
switch (lsa->ls_hdr.ls_type) {
if (TRUNC(&lsa->lsa_un.un_rla.rla_flags))
lsa->lsa_un.un_rla.rla_flags);
if (TRUNC(&lsa->lsa_un.un_rla.rla_count))
rla_count = ntohs(lsa->lsa_un.un_rla.rla_count);
rl = lsa->lsa_un.un_rla.rla_link;
if (TRUNC(&lsa->lsa_un.un_nla.nla_mask))
inet_ntoa(lsa->lsa_un.un_nla.nla_mask));
addr = lsa->lsa_un.un_nla.nla_router;
if (TRUNC((uchar_t *)&lsa->lsa_un.un_sla.sla_mask +
inet_ntoa(lsa->lsa_un.un_sla.sla_mask));
if (TRUNC(&lsa->lsa_un.un_sla.sla_tosmetric))
tosmetric = lsa->lsa_un.un_sla.sla_tosmetric;
if (TRUNC(&lsa->lsa_un.un_asla.asla_mask))
inet_ntoa(lsa->lsa_un.un_asla.asla_mask));
am = lsa->lsa_un.un_asla.asla_metric;
" Unknown LSA type %d", lsa->ls_hdr.ls_type);
struct lsa *lsa;
lsa = ospf->ospf_lsu.lsu_lsa;
if (((uchar_t *)lsa >= fragend) ||
((uchar_t *)lsa + sizeof (struct lsa_hdr) >
((uchar_t *)lsa + ntohs(lsa->ls_hdr.ls_length) >
if (interpret_ospf_lsa(flags, lsa, fragend) < 0) {
lsa = (struct lsa *)((uchar_t *)lsa +
ntohs(lsa->ls_hdr.ls_length));
static int interpret_ospf_lsa(int flags, struct lsa *lsa, uchar_t *);
struct lsa lsu_lsa[1]; /* may repeat */
interpret_ospf6_lsa(int flags, struct lsa6 *lsa, uchar_t *fragend)
interpret_ospf6_lsa_hdr(flags, &lsa->ls6_hdr);
ls_end = (uchar_t *)lsa + ntohs(lsa->ls6_hdr.ls6_length);
switch (ntohs(lsa->ls6_hdr.ls6_type)) {
if (TRUNC(&lsa->lsa_un.un_rla.rla6_flags))
lsa->lsa_un.un_rla.rla6_flags);
if (TRUNC(&lsa->lsa_un.un_rla.rla6_options))
ntohl(lsa->lsa_un.un_rla.rla6_options));
rl = lsa->lsa_un.un_rla.rla_link;
if (TRUNC(&lsa->lsa_un.un_nla.nla_options))
ntohl(lsa->lsa_un.un_nla.nla_options));
addr = lsa->lsa_un.un_nla.nla_router;
if (TRUNC(&lsa->lsa_un.un_inter_ap.inter_ap_metric))
ntohl(lsa->lsa_un.un_inter_ap.inter_ap_metric) &
ntohl(lsa->lsa_un.un_inter_ap.inter_ap_metric) &
lpfx = lsa->lsa_un.un_inter_ap.inter_ap_prefix;
llsa = &lsa->lsa_un.un_llsa;
if (TRUNC(&lsa->lsa_un.un_intra_ap.intra_ap_rtid))
ntohs(lsa->lsa_un.un_intra_ap.intra_ap_lstype),
lsa->lsa_un.un_intra_ap.intra_ap_lsid,
lsa->lsa_un.un_intra_ap.intra_ap_rtid);
if (TRUNC(&lsa->lsa_un.un_intra_ap.intra_ap_nprefix))
ntohs(lsa->lsa_un.un_intra_ap.intra_ap_nprefix));
ntohs(lsa->lsa_un.un_intra_ap.intra_ap_nprefix));
lpfx = lsa->lsa_un.un_intra_ap.intra_ap_prefix;
j < ntohs(lsa->lsa_un.un_intra_ap.intra_ap_nprefix); j++) {
lsa->ls6_hdr.ls6_type);
" Unknown LSA type %d", lsa->ls6_hdr.ls6_type);
struct lsa6 *lsa;
lsa = ospf->ospf6_lsu.lsu_lsa;
if (((uchar_t *)lsa >= fragend) ||
((uchar_t *)lsa + sizeof (struct lsa_hdr) >
((uchar_t *)lsa + ntohs(lsa->ls6_hdr.ls6_length) >
if (interpret_ospf6_lsa(flags, lsa, fragend) < 0) {
lsa = (struct lsa6 *)((uchar_t *)lsa +
ntohs(lsa->ls6_hdr.ls6_length));
struct sockaddr *lsa;
lsa = (void *)&conn.ac_local;
lsa->sa_family = rsa->sa_family;
struct lm_svc_args lsa;
lsa.version = STRUCT_FGET(ulsa, version);
lsa.fd = STRUCT_FGET(ulsa, fd);
lsa.n_fmly = STRUCT_FGET(ulsa, n_fmly);
lsa.n_proto = STRUCT_FGET(ulsa, n_proto);
lsa.n_rdev = expldev(STRUCT_FGET(ulsa, n_rdev));
lsa.debug = STRUCT_FGET(ulsa, debug);
lsa.timout = STRUCT_FGET(ulsa, timout);
lsa.grace = STRUCT_FGET(ulsa, grace);
lsa.retransmittimeout = STRUCT_FGET(ulsa,
if (copyin(arg, &lsa, sizeof (lsa)))
error = lm_svc(&lsa);