ModuleAttributeClass { iso org(3) dod(6) internet(1) private(4) enterprise(1)
	spelio(9363) software(1) asn1c(5) test(1) 98 }
DEFINITIONS ::=
BEGIN

ATTRIBUTE ::= CLASS {
    &id	 RELATIVE-OID UNIQUE
} WITH SYNTAX { ID &id }


Attribute ::= SEQUENCE {
    identifier	 ATTRIBUTE.&id ({Attributes}),
    siAttributeValue	 IA5String
}

Attributes ATTRIBUTE ::= {Names}

Names ATTRIBUTE ::= {{ ID raf } | { ID rcf }}

rafService ATTRIBUTE ::= { ID raf }

rcfService ATTRIBUTE ::= { ID rcf }

raf RELATIVE-OID ::= {3 2 1}

rcf RELATIVE-OID ::= {3 2 2}

END
