}
| UNSET '(' rtadot dynamic_attr ')' ';' {
$$ = $4;
- $$->aux = EAF_TYPE_UNDEF | EAF_INLINE;
+ $$->aux = EAF_TYPE_UNDEF | EAF_TEMP;
$$->code = P('e','S');
$$->a1.p = NULL;
}
break;
}
- if (what->aux & EAF_INLINE) {
+ if (!(what->aux & EAF_TEMP)) {
*f_rte = rte_do_cow(*f_rte);
l->next = (*f_rte)->attrs->eattrs;
(*f_rte)->attrs->eattrs = l;
#define EAF_TYPE_UNDEF 0x0f /* `force undefined' entry */
#define EAF_EMBEDDED 0x01 /* Data stored in eattr.u.data (part of type spec) */
#define EAF_VAR_LENGTH 0x02 /* Attribute length is variable */
-#define EAF_INLINE 0x80 /* Copy of an attribute inlined in rte (temporary ea_lists only) */
+#define EAF_TEMP 0x80 /* A temporary attribute (the one stored in the tmp attr list) */
struct adata {
unsigned int length;
{
eattr *a = &e->attrs[i];
debug(" %02x:%02x.%02x", EA_PROTO(a->id), EA_ID(a->id), a->flags);
- if (a->type & EAF_INLINE)
- debug("*");
+ if (a->type & EAF_TEMP)
+ debug("T");
debug("=%c", "?iO?I?P???S?????" [a->type & EAF_TYPE_MASK]);
if (a->type & EAF_EMBEDDED)
debug(":%08x", a->u.data);
| rip_iface_list ',' rip_iface
;
-CF_ADDTO(dynamic_attr, RIP_METRIC { $$ = f_new_dynamic_attr(EAF_TYPE_INT | EAF_INLINE, EA_RIP_METRIC); })
-CF_ADDTO(dynamic_attr, RIP_TAG { $$ = f_new_dynamic_attr(EAF_TYPE_INT | EAF_INLINE, EA_RIP_TAG); })
+CF_ADDTO(dynamic_attr, RIP_METRIC { $$ = f_new_dynamic_attr(EAF_TYPE_INT | EAF_TEMP, EA_RIP_METRIC); })
+CF_ADDTO(dynamic_attr, RIP_TAG { $$ = f_new_dynamic_attr(EAF_TYPE_INT | EAF_TEMP, EA_RIP_TAG); })
CF_CODE
l->count = 2;
l->attrs[0].id = EA_RIP_TAG;
l->attrs[0].flags = 0;
- l->attrs[0].type = EAF_TYPE_INT | EAF_INLINE;
+ l->attrs[0].type = EAF_TYPE_INT | EAF_TEMP;
l->attrs[0].u.data = tag;
l->attrs[1].id = EA_RIP_METRIC;
l->attrs[1].flags = 0;
- l->attrs[1].type = EAF_TYPE_INT | EAF_INLINE;
+ l->attrs[1].type = EAF_TYPE_INT | EAF_TEMP;
l->attrs[1].u.data = metric;
return l;
}