+ case LS_SCOPE_AS | LS_TYPE_ASE:
+ TCHECK(lsap->lsa_un.un_asla.asla_metric);
+ flags32 = EXTRACT_32BITS(&lsap->lsa_un.un_asla.asla_metric);
+ ospf6_print_bits(ospf6_asla_flag_bits, flags32);
+ printf(" metric %u",
+ EXTRACT_32BITS(&lsap->lsa_un.un_asla.asla_metric) &
+ ASLA_MASK_METRIC);
+ lsapp = lsap->lsa_un.un_asla.asla_prefix;
+ k = ospf6_print_lsaprefix(lsapp);
+ if (k < 0)
+ goto trunc;
+ if ((ls_opt = (u_char *)(((u_char *)lsapp) + k)) < ls_end) {
+ struct in6_addr *fwdaddr6;
+
+ if ((flags32 & ASLA_FLAG_FWDADDR) != 0) {
+ fwdaddr6 = (struct in6_addr *)ls_opt;
+ TCHECK(*fwdaddr6);
+ printf(" forward %s",
+ ip6addr_string(fwdaddr6));
+
+ ls_opt += sizeof(struct in6_addr);
+ }
+
+ if ((flags32 & ASLA_FLAG_ROUTETAG) != 0) {
+ TCHECK(*(u_int32_t *)ls_opt);
+ printf(" tag %s",
+ ipaddr_string((u_int32_t *)ls_opt));
+
+ ls_opt += sizeof(u_int32_t);
+ }
+
+ if (lsapp->lsa_p_mbz) {
+ TCHECK(*(u_int32_t *)ls_opt);
+ printf(" RefLSID: %s",
+ ipaddr_string((u_int32_t *)ls_opt));