Subject: FIN> PWG Finisher MIB constraints ASN.1

From: Tom Hastings <[email-masked]>
Date: Mon, 6 Apr 1998 13:32:07 PDT

Here is an old proposal for representing constraints in the Finisher MIB
that Ira was working on with some of us at Xerox and it got buried.  
I'd like to look at it with the FIN group.

My appologies, I have not had time to review and understand it myself.

Tom

>Date: Sat, 28 Feb 98 20:56:00 EST
>From: [email-masked] (Ira Mcdonald x10962)
>To: [email-masked], [email-masked]
>Subject: PWG Finisher MIB constraints ASN.1 - Please reply ASAP!!
>
>Hi Tom,                                      Saturday (28 February 1998)
>
>At your request, below are new sketches for one textual convention and
>two object groups capable of expressing arbitrarily complex constraints
>between any two attributes in the PWG Finisher MIB.  Please review them
>ASAP!
>
>A given 'predicate rule' (in 'finPredicateTable') may be associated with
>one or more 'assertion rules' (in 'finAssertionTable').  Look at the
>INDEX clauses of the two object groups, for their relationships.
>
>If you agree that this is a viable approach, I'd like to forward these
>ASN.1 fragments BEFORE the PWG meeting (4-6 March), to permit review.
>
>Cheers,
>- Ira McDonald
>
>------------------------------------------------------------------------
>
>finPredicateTable OBJECT-TYPE
>    SYNTAX      SEQUENCE OF FinPredicateEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>    DESCRIPTION
>        "The 'finPredicateTable' SHALL contain predicate rules for
>        constraints between pairs of finisher device attributes."
>    ::= { finPredicate 1 }
>
>finPredicateEntry OBJECT-TYPE
>    SYNTAX      FinPredicateEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>    DESCRIPTION
>        "A 'finPredicateEntry' SHALL contain one predicate rule for
>        constraints between pairs of finisher device attributes."
>    INDEX       { hrDeviceIndex,
>                  finDeviceIndex,
>                  finPredicateAttributeTypeIndex,
>                  finPredicateAttributeRuleIndex }
>    ::= { finPredicateTable 1 }
>
>FinPredicateEntry ::= SEQUENCE {
>    finPredicateAttributeTypeIndex      FinAttributeTypeTC,
>    finPredicateAttributeRuleIndex      Integer32 (1..32767),
>    finPredicateAttributeMatchRule      FinAttributeMatchRuleTC,
>    finPredicateValueAsIntegerMinimum   Integer32 (-2..2147483647),
>    finPredicateValueAsIntegerMaximum   Integer32 (-2..2147483647),
>    finPredicateValueAsOctets           OCTET STRING (SIZE (0..63))
>}
>
>------------------------------------------------------------------------
>
>finAssertionTable OBJECT-TYPE
>    SYNTAX      SEQUENCE OF FinAssertionEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>    DESCRIPTION
>        "The 'finAssertionTable' SHALL contain assertion rules for
>        constraints between pairs of finisher device attributes."
>    ::= { finAssertion 1 }
>
>finAssertionEntry OBJECT-TYPE
>    SYNTAX      FinAssertionEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>    DESCRIPTION
>        "A 'finAssertionEntry' SHALL contain one assertion rule for
>        constraints between pairs of finisher device attributes."
>    INDEX       { hrDeviceIndex,
>                  finDeviceIndex,
>                  finPredicateAttributeTypeIndex,
>                  finPredicateAttributeRuleIndex,
>                  finAssertionAttributeRuleIndex }
>    ::= { finAssertionTable 1 }
>
>FinAssertionEntry ::= SEQUENCE {
>    finAssertionAttributeRuleIndex      Integer32 (1..32767),
>    finAssertionAttributeType           FinAttributeTypeTC,
>    finAssertionAttributeMatchRule      FinAttributeMatchRuleTC,
>    finAssertionValueAsIntegerMinimum   Integer32 (-2..2147483647),
>    finAssertionValueAsIntegerMaximum   Integer32 (-2..2147483647),
>    finAssertionValueAsOctets           OCTET STRING (SIZE (0..63))
>}
>
>------------------------------------------------------------------------
>
>FinAttributeMatchRuleTC ::= TEXTUAL-CONVENTION
>    STATUS      current
>    DESCRIPTION
>        "The set of matching rules which may be applied for testing the
>        condition in a predicate rule or an assertion rule used for
>        constraints between pairs of finisher device attributes."
>    SYNTAX      INTEGER {
>        none(0),
>        other(1),
>        unknown(2),
>        --  Match ordering rules for integers and strings
>        matchOrderingEQ(11),            -- '==' Equal
>        matchOrderingNE(12),            -- '!=' Not Equal
>        matchOrderingLT(13),            -- '<'  Less Than
>        matchOrderingGT(14),            -- '<'  Greater Than
>        matchOrderingLE(15),            -- '<=' Less Than or Equal
>        matchOrderingGE(16),            -- '<=' Greater Than or Equal
>        --  March ordering rules for strings ONLY
>        matchStringExact(21),           -- Exact characters and length
>        matchStringCaseInsensitive(22), -- Ignore case
>        matchStringSameLetter(23),      -- Ignore accents, case, etc
>        matchStringApproximate(24),     -- Implementation defined
>        matchStringInitial(25),         -- '=*'  Initial substring
>        matchStringAny(26),             -- '*=*' Any substring
>        matchStringFinal(27),           -- '*='  Final substring
>        --  Match presence rules for integers and strings
>        matchLogicalPresent(31),        -- '*'  Logical Present
>        matchLogicalNotPresent(32)      -- '!*' Logical Not Present
>    }
>
>------------------------------------------------------------------------
>
>