SIPPING WG                                              R.G. Crespo
Internet-Draft                                          UTL
<draft-cl-sipping-fi-resolution-00.txt>                 L. Logrippo
Intended Status: Experimental                           UQO
Expires April 15, 2009                                  October 15, 2008

           Distributed Resolution of Feature Interactions for
                         Internet Applications
                <draft-cl-sipping-fi-resolution-00.txt>

                          Status of this Memo

By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.

Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups.  Note that
other groups may also distribute working documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time.  It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress".

The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt

The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html

This Internet-Draff will expire on April 15, 2009.

Abstract

Internet applications have been enhanced with many features.
A feature may be defined as a unit of functionality in a system, having
a self-contained role.
However, the introduction and modification of features may result in
undesired behaviors, and this effect is known as feature interaction -
FI for short.

This document specifies the architecture of a distributed feature mana-
ger that proposes the resolution of feature interactions. The resolu-
tion may be done locally, or with cooperation between different nodes.

The resolution method is left to the implementation. In this document



Crespo & Logrippo          Expires April 2009                   [Page 1]





                   Resolution of Feature Interactions   October 15, 2008


we provide an example of one resolution method, based on feature
interdiction, as described by a set of deontic formulas.

Table of Contents

   1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  2
      1.1. FI major problems  . . . . . . . . . . . . . . . . . . . .  3
      1.2. FI classification  . . . . . . . . . . . . . . . . . . . .  4
      1.3. Conventions of this document . . . . . . . . . . . . . . .  4
      1.4. Terminology  . . . . . . . . . . . . . . . . . . . . . . .  4
   2. Architecture  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3. Protocol specification  . . . . . . . . . . . . . . . . . . . .  5
      3.1. Feature representation . . . . . . . . . . . . . . . . . .  6
      3.2. Candidate message format . . . . . . . . . . . . . . . . .  7
           3.2.1. Header part . . . . . . . . . . . . . . . . . . . .  7
           3.2.2. Information part  . . . . . . . . . . . . . . . . .  8
      3.3. Advice message format  . . . . . . . . . . . . . . . . . .  8
      3.4. Request message format . . . . . . . . . . . . . . . . . .  9
      3.5. Reply message format . . . . . . . . . . . . . . . . . . .  9
   4. Feature resolution  . . . . . . . . . . . . . . . . . . . . . .  9
      4.1. Constraint relationships . . . . . . . . . . . . . . . . . 10
           4.1.1. Local constraints . . . . . . . . . . . . . . . . . 11
           4.1.2. Chain constraints . . . . . . . . . . . . . . . . . 11
           4.1.3. Point-to-point constraints  . . . . . . . . . . . . 11
      4.2. Losing information . . . . . . . . . . . . . . . . . . . . 11
      4.3. Features represented by multiple actions . . . . . . . . . 11
      4.4. Final selection  . . . . . . . . . . . . . . . . . . . . . 12
   5. Security Considerations . . . . . . . . . . . . . . . . . . . . 12
   6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 12
      6.1. Registries for messages between LA and LIRAdv  . . . . . . 12
      6.2. Registries for messages between LIRAdv and RIRAdv  . . . . 13
   7. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 13
   8. References  . . . . . . . . . . . . . . . . . . . . . . . . . . 13
   Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
   Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1. Introduction

   The purpose of this draft is to document a method to resolve feature
   interactions, which may occur in Internet applications. The method is
   based on the use of a feature manager, designated as Interaction
   Resolver Advisor (IRAdv).  IRAdvs may cooperate to resolve particular
   interactions.  This document focuses on the interaction between the
   applications and the IRAdvs, and between IRAdvs.

   The implementation of the IRAdvs is left unspecified, although we
   describe one possible implementation based on a set of interdiction
   formulas.



Crespo & Logrippo          Expires April 2009                   [Page 2]





                   Resolution of Feature Interactions   October 15, 2008


   Internet applications provide sets of basic services. For example,
   the Email protocol provides two basic services: sending a message to
   another user and reading a message from another user.

   Internet applications have been enhanced with many features, defined
   as units of functionality existing in a system and perceived as
   having self-contained roles.  For example, ForwardMessage and
   AutoResponder are popular Email features.  ForwardMessage forwards
   all incoming Email messages to another user.  AutoResponder reads the
   incoming messages and sends automatically a notification message to
   the Email originators, for example notifying them that the recipient
   is absent on vacation.

   The combination of features, which work fine alone, may result in
   undesired behaviors and this problem is known as feature interaction,
   or FI for short.  For example, suppose that Bob instructs the Email
   server to execute the ForwardMessage feature, forwarding all messages
   to Carl. A message that Alice sends to Bob is sent again to Carl.
   Suppose also that Carl subscribes to the AutoResponder feature.
   Thereafter, the Email server of Carl accepts Alice message and sends
   a notification message to Bob, not to the message originator (Alice).
   This result goes against the goal of the AutoResponder feature, which
   is to notify the originator that Carl is away.  The Email server of
   Bob, when it receives the notification message, forwards it back to
   Carl. The Email server of Carl detects a loop, another undesired
   behavior, and discards the notification message.

   In this draft, we adopt SMTP definitions [2] for originator and
   recipient.

   FIs may occur for a single user: for example, ForwardMessage and
   ReadMessage basic services interact (if a message arrives, should it
   be forward to another user, or should it be stored in the Email
   server?).  FIs may involve several users, such as the one between the
   ForwardMessage and AutoResponder features.

   FIs may occur within a single application node, such as the one
   between the AutoResponder and FilterMessage.  FIs may also occur
   among different application nodes, an example is mutual
   ForwardMessage features.

   The FI problem, first identified in circuit-switched networks, has
   been studied in many Internet applications, such as Email [3], VoIP
   [4], WWW [5] and networked home appliances [6].

1.1. FI major problems

   Three basic problems have been studied: avoidance, detection and



Crespo & Logrippo          Expires April 2009                   [Page 3]





                   Resolution of Feature Interactions   October 15, 2008


   resolution.

     * Avoidance means to intervene at protocol or design stages to
     prevent FIs, before features are executed.  The distributed nature
     of the Internet, with multi-vendor and multi-provider environments,
     and the end user capability to program and tailor features, make it
     impossible to rely on avoidance.

     * Detection aims at the identification of FIs, with suitable
     methods.  A review of several existing methods of FI detection is
     given in [7].

     * In the resolution, actions are exercised over already detected
     FIs.  Three approaches have been explored for FI run-time
     resolution: one phase, two phase and negotiation.

   The one phase approach uses feature managers to decide which feature
   is executed, according to tables or trees.  Although simple, the one
   phase approach requires knowledge about low-level details, suffers
   from the scalability problem, and reveals problems in the resolution
   of multiple user FIs.

   In the two phase approach, the feature is executed in an isolated
   environment and actions are taken in case of FI.  The isolated
   environment is impractical in the Internet.

   The distributed character of the Internet makes direct negotiation
   the most suitable approach.

   In this draft, we specify an Interaction Resolver Adviser (IRAdv),
   which is

     * scalable, i.e., such that increasing the number of Internet
     applications and increasing the number of subscribed features does
     not degrade significantly the resolution performance,

     * accepts partial resolution, i.e., it will work even if some nodes
     do not reply to requests sent by other IRAdvs - because they may be
     down or because IRAdvs have not been installed,

     * independent of the feature implementation, and

     * unique for all Internet applications.

1.2. FI classification

   Several taxonomies have been produced to classify different types of
   FI.  Here we adopt the classification of [9], where FIs are



Crespo & Logrippo          Expires April 2009                   [Page 4]





                   Resolution of Feature Interactions   October 15, 2008


   classified by the nature of the interaction, as well as by the cause
   of the interaction.

   We are especially concerned with the nature of the interactions,
   according to the number of parties involved in the interactions
   (single or multiple), the number of network components involved in
   the interactions (single or multiple), and the kind of features
   involved in the interactions (custom or system).

1.3. Conventions of this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL NOT", "SHOULD",
   "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL", are to be
   interpreted as described in RFC 2119 [1] and indicate requirement
   levels for compliant implementations.

1.4 Terminology


   FI:     Feature interaction
   FIRP:   Feature Interaction Resolution Protocol
   IETF:   Internet Engineering Task Force
   IRAdv:  Interaction Resolver Adviser
   LIRAdv: Local Interaction Resolver Adviser
   RIRAdv: Remote Interaction Resolver Adviser
   WWW:    World Wide Web

2. Architecture

   The architecture model that we propose for a distributed resolution
   of FIs is depicted in figure 1.  The architecture model adopts the
   client-server model.



















Crespo & Logrippo          Expires April 2009                   [Page 5]





                   Resolution of Feature Interactions   October 15, 2008


                     +---------------------------------+
                     |           Application           |
                     |                                 |
                     | +-----------+     + ----------+ |
                     | | Feature 1 | ... | Feature N | |
                     | +-----------+     +-----------+ |
                     |                                 |
                     +---------------------------------+
                      ^   |
                      |   | Candidates
                      |   |
                      |   |  +-------+         +-------+
                      |   +->|       | Request |       |
                      |      | IRAdv |-------->| IRAdv |
                      +------|       |<--------|       |
                      Advice |       |  Reply  |       |
                             |       |         |       |
                             +-------+         +-------+

                         Figure 1 Architecture model


   When an application has a request for a service, incoming or outgo-
   ing, the application may identify more than one feature as candidate
   for service execution.  The application asks IRAdv for advice on
   which feature the application should execute that will not generate
   inconsistent behaviors.

   IRAdvs may request other IRAdvs for additional information. Their
   reply will assist the requesting IRAdv to identity the advice, to be
   returned to the application.

3. FIRP specification

   This section provides the detailed description of the FIRP-Feature
   Interaction Resolution Protocol.  The entities are the Local Applica-
   tion (LA), the Local IRAdv (LIRAdv) and the Remote IRAdv (RIRAdv).

   The protocol between the Application (the client) and the Local IRAdv
   (the server) is depicted in figure 2.

     * First, upon the arrival of an incoming message or the generation
     of an outgoing message, the application sends to the LIRAdv a set
     of feature candidates for execution, together with the application
     status.

     * LIRAdv may request other RIRAdv for a certain kind of permission
     to execute the feature. In this case, RIRAdv returns a Reply.  With



Crespo & Logrippo          Expires April 2009                   [Page 6]





                   Resolution of Feature Interactions   October 15, 2008


     consideration of this reply, LIRAdv selects the feature which, when
     executed by LA, does not generate FIs.

     * Finally, LIRAdv advises LA on which feature it must execute.


                        LA                LIRAdv          RIRAdv
                          |                   |              |
              +----------------------+        |              |
              |Feature identification|        |              |
              +----------------------+        |              |
                          |    Candidates     |              |
                          |------------------>|              |
                          | (Features,Status) |              |
                          |                   |   Request    |
                          |                   |------------->|
                          |                   | (Permission) |
                          |                   |     Reply    |
                          |                   |<-------------|
                          |                   | (Permission) |
                          |          +-----------------+     |
                          |          |Feature selection|     |
                          |          +-----------------+     |
                          |      Advice       |              |
                          |<------------------|              |
                          |     (Feature)     |              |

                        Figure 2 Resolution procedure


   The location of IRAdvs is a matter of implementation: each applica-
   tion node may have installed one IRAdv, or one IRAdv may serve sev-
   eral application nodes.  In both cases, when receiving requests from
   other IRAdvs, the remote IRAdvs should have access to information
   from the application nodes that they are serving.

3.1 Feature representation

   The number of features in a system may be large. For example, about
   eight hundred features are known in telephone systems [8]. Short
   lists of 17 telecommunication features, easily adapted to VoIP [9],
   and the specification of 10 Email features [3] are available in the
   literature.  Hence, there is a need to identify a compact representa-
   tion of features, to avoid a large matrix of relationships in the FI
   resolver.

   Compact feature representations have been proposed in [10] and [11].
   We adopt here the feature representation of [10], with a set of basic



Crespo & Logrippo          Expires April 2009                   [Page 7]





                   Resolution of Feature Interactions   October 15, 2008


   and abstract actions that a feature can execute. Actions are depicted
   in table 1.  All actions have one parameter that may be

     * _init, the node that started the message,

     * _dest, the node to whom the message should be delivered (that may
     be changed later, for example as the result of a forward),

     * _self, the node currently processing the message.


                       Table 1 Feature basic actions
    +-----------------+------------------------------------------------+
    |      Name       |                    Purpose                     |
    +-----------------+------------------------------------------------+
    |Accept(_init)    | The node accepts the message                   |
    +-----------------+------------------------------------------------+
    |Deny(_init)      | The node rejects the message                   |
    +-----------------+------------------------------------------------+
    |Display(_init)   | The node displays the originator and waits for |
    |                 | the recipient to confirm message acceptance    |
    +-----------------+------------------------------------------------+
    |Emergency(_init) | The node must accept the message, with highest |
    |                 | priority                                       |
    +-----------------+------------------------------------------------+
    |Forward(_dest)   | The node redirects the message to another node |
    +-----------------+------------------------------------------------+
    |Send(_dest)      | The node initiates a message to another node   |
    +-----------------+------------------------------------------------+
    |Wait(_init)      | The node puts the message on hold, for later   |
    |                 | processing                                     |
    +-----------------+------------------------------------------------+


   Two different features may be represented by the same basic actions.
   For example, the VoIP CFA-Call Forward Always and CFB-Call Forward if
   Busy features are both represented by the Forward action when the
   user is busy.

   One feature may be represented by more than one action. For example,
   the Email AutoResponder feature is represented by the join of actions
   Accept and Send.

3.2 Candidate message format

   When an application has a request for a service, incoming or outgo-
   ing, more than one feature may be selected as candidate for service
   execution.  Then, the application sends to the IRAdv attached to its



Crespo & Logrippo          Expires April 2009                   [Page 8]





                   Resolution of Feature Interactions   October 15, 2008


   node a message with a structure divided in two parts:

     * Header part, containing information about the message and the
     involved parties,

     * Information part, containing specific information about each
     selected feature.

3.2.1. Header part

   The header part is divided into five fields: AP, Initial-Addr, Chain-
   Addr, AS and CD.

     * ApplicationPort field (AP) indicates which application requires
     advice.

     AP value is the port number attached to the associated application
     protocol, as registered by IANA.  For example, Email applications
     follow the SMTP protocol [2] and communicate through port 25.

     * Initial Address (Initial-Addr) field contains the address of the
     user that has initiated the message.

     The Initial-Addr is set by the originator application, and must
     remain unchanged until the message is last processed.  Actions with
     _init parameter bind their value to Initial-Addr value.

     * Chain Address field (Chain-Addr) contains the list of IP
     addresses of all nodes that have processed the message, including
     the originator.  This field can be useful to detect message loop-
     ing.  The originator node starts an empty Chain-Addr field. All
     successive nodes, including the originator, append their IP
     addresses to the Chain-Addr field.

     * ApplicationStatus field (AS) provides information about the
     application status.

     The structure and the meaning of the application status depend on
     the implementation of the application and of the IRAdv.  An example
     of application status is the predicate loop(_self) which is true if
     the processing node finds its own IP address in the Chain-Addr
     value.

     * ConfirmDirective field (CD) indicates the kind of confirmation to
     be asked of the originator node. CD field is intended for the
     implementation of access control policies, such as parental con-
     trol. In this document we do not focus on security issues, such as
     authorisation and data integrity.



Crespo & Logrippo          Expires April 2009                   [Page 9]





                   Resolution of Feature Interactions   October 15, 2008


     Table 2 depicts the possible values for the CD field.


                   Table 2 ConfirmDirective field values
     +------------+----------------------------------------------------+
     |   Value    |                      Purpose                       |
     +------------+----------------------------------------------------+
     |None        | Message may be processed without originator        |
     |            | knowledge                                          |
     +------------+----------------------------------------------------+
     |AllNodes    | All nodes must ask, from the originator,           |
     |            | permission to process the message                  |
     +------------+----------------------------------------------------+
     |Destination | Only the final destination node must ask, from the |
     |            | originator, permission to process the message      |
     +------------+----------------------------------------------------+


     CD-value should be transmitted with the message.  Section 4.2 dis-
     cusses the case when, for some reason, the CD-value is unavailable.

3.2.2. Information part

   The information part is divided into two fields: FC and Act.

     * FeatureCode field (FC) is an unique identifier of the feature
     candidate for execution.

     The purpose of the FC field is to link features to the actions that
     represent them.

     * Action field (Act) is a list of action codes, that represent the
     features identified in the FC field.

     Each action code must be followed by the IP addresses of the action
     parameters.  The Action parameters, listed in table 1, are: _init,
     _dest and _self.

3.3. Advice message format

   Local IRAdv returns to the application the feature code that it
   should execute. In case of failure in FI resolution, IRAdv must
   return to the application the special code NO_ADVICE.

3.4. Request message format

   When an IRAdv receives a candidate message, it may be necessary for
   resolution of FIs to ask another IRAdv for permission to execute the



Crespo & Logrippo          Expires April 2009                  [Page 10]





                   Resolution of Feature Interactions   October 15, 2008


   feature.  The information exchange is sent through a request message,
   which is linked to the candidate message.

   Every request message contains five fields: FC, AP, CC, Initial-Addr
   and Destination-Addr.

     * FeatureCode field (FC) is a unique identifier for the feature.
     The FeatureCode value is equal to the value in the corresponding
     field in the linked Candidate message.

     * ApplicationPort field (AP) indicates the application concerned by
     the request.  The AP value must be equal to the value in the corre-
     sponding field in the candidate message.

     * ConfirmationCode field (CC) indicates the kind of permission
     required, or its result.  Table 3 depicts the possible values for
     the CC field.


                      Table 3 ConfirmationCode values
      +--------------------+------------------------------------------+
      |       Value        |                 Purpose                  |
      +--------------------+------------------------------------------+
      |Delivery_request    | Request permission to accept the message |
      +--------------------+------------------------------------------+
      |Delivery_acceptable | Message may be delivered                 |
      +--------------------+------------------------------------------+
      |Delivery_denied     | Message must not be delivered            |
      +--------------------+------------------------------------------+


     For the Request message, the only acceptable value of the CC field
     is Delivery_request

     * Initial Address field (Initial-Addr) contains the address of the
     user that initiates, or has initiated, the message.  The Initial-
     Addr value is equal to the same field in the linked Candidate mes-
     sage.

     * Destination Address field (Destination-Addr) contains the address
     of the intended destination partner.  The Destination-Addr value is
     equal to the value in the corresponding field in the linked Candi-
     date message.

3.5. Reply message format

   The Reply message format is equal to the Request message format. The
   only difference between Request and Replay messages is the CC value.



Crespo & Logrippo          Expires April 2009                  [Page 11]





                   Resolution of Feature Interactions   October 15, 2008


   For Reply message, the CC value may only be equal to Delivery_accept-
   able or Delivery_denied

   IRAdvs must be aware that other IRAdvs may not reply to their
   requests.  For example, remote nodes may be temporarily down, or may
   not have IRAdv installed.  If the local IRAdv does not receive a
   reply to a request, it may produce a different advice.  This problem
   is discussed in section 4.2

4. Feature resolution

   The method for selecting feature candidates that would not produce
   FIs is left to the implementation.

   Here we describe the implementation presented in [10], based on two
   steps:

     * In the first step, the filtering phase, a set of constraint for-
     mulas is evaluated over the actions that each feature candidate
     represents.  This step is described in sections 4.1 to 4.3.

     The filtering phase is implemented with support of a set of con-
     straint formulas.  If satisfied, a constraint formula marks some
     actions as interdicted.  The result of the first step is the elimi-
     nation of a subset of feature candidates for execution. The remain-
     ing feature candidates are submitted to the second step.

     * In the second step, the selection phase, one feature is selected
     for execution advice.  This step is described in section 4.4

4.1. Constraint relationships

   Constraint relationships are formulas expressed in the first-order
   predicate language, extended with the interdiction operator I.  Logi-
   cal connectives are listed in table 4
















Crespo & Logrippo          Expires April 2009                  [Page 12]





                   Resolution of Feature Interactions   October 15, 2008


                        Table 4 Logical connectives
                +-----------+--------+---------------------+
                |Connective | Arity  |       Meaning       |
                +-----------+--------+---------------------+
                |   AND     | Binary | Formula conjunction |
                +-----------+--------+---------------------+
                |    OR     | Binary | Formula disjunction |
                +-----------+--------+---------------------+
                |  IMPLY    | Binary | Formula implication |
                +-----------+--------+---------------------+
                |   NOT     | Unary  | Formula negation    |
                +-----------+--------+---------------------+
                |    I      | Unary  | Action removal      |
                +-----------+--------+---------------------+


   The operator precedence, which may be overridden by the use of par-
   entesis, is as follows

     * Highest precedence for unary operators.

     * Intermediate precedence for conjunction and disjunctive opera-
     tors.

     * Lowest precedence for the implication operator.

     The form of the formula is

                 Requests AND Conditions IMPLY Restrictions

     * The Requests part is a conjunction of actions, representing fea-
     tures selected by the application as candidates for execution.

     * The Conditions part identifies the values that the application
     status, or message status, may have to hold.

     By default, this part is considered to be true.

     * The Restrictions part identifies the single action, or the join
     of actions, whose execution is forbidden.

     In this part we use the Interdiction unary connective, where I act
     means that action act cannot be executed.

   There are three different types of constraint formulas which apply to
   different layouts of the nodes that participate in the resolution. We
   call these local, chain and point-to-point constraints.




Crespo & Logrippo          Expires April 2009                  [Page 13]





                   Resolution of Feature Interactions   October 15, 2008


4.1.1. Local constraints

   Local constraints are directed to the resolution of single user FIs.

   For example, the formula that gives a Deny action a priority greater
   than the Accept action is

            Accept(_init) AND Deny(_init) IMPLY I Accept(_init)

4.1.2. Chain constraints

   Chain constraints are oriented to the resolution of multiple FIs,
   with no request for permission from another IRAdv.

   For example, the formula that forbids a message to enter a loop
   through Forward actions is

           Forward(_dest) AND loop(_self) IMPLY I Forward(_dest)

4.1.3. Point-to-point constraints

   Chain constraints are directed to the resolution of multiple user
   FIs, with request for permission from another IRAdv.

   For example, the formula that resolves ReadMail and FilterDestination
   FI is

       Accept(_init) AND NOT permission(_init) IMPLY I Accept(_init)

4.2. Losing information

   Because IRAdvs may not work properly in all intervening nodes, in
   some cases a reply may not be returned.  IRAdv must always return an
   advice to the application, therefore a default value for the reply
   must be considered.  The default value may depend on the recipient
   application.  For example, the content of some WWW pages may require
   an explicit confirmation from the originator and the default reply
   value for permission(_init) request would be false.

4.3. Features represented by multiple actions

   Actions of different features are connected in the Request and Inter-
   diction parts by the AND logical operator.

   The join predicate is needed because some features can be represented
   by several actions, and we do not want actions to be transferred from
   one feature representation to another.  If A,B and C are actions,
   join(A,B) AND C is equivalent to C AND join(A,B) or to C AND



Crespo & Logrippo          Expires April 2009                  [Page 14]





                   Resolution of Feature Interactions   October 15, 2008


   join(B,A), but not to A AND join(B,C).

   For example, to interdict AutoResponder feature to send a reply to
   the postmaster, the formula is

           join(Accept(_init),Send(_dest)) AND _dest=postMaster
                         IMPLY I Send(postMaster)

   The fact that several action may be joined in a features raises the
   question of what will happen if only some actions in a feature are
   interdicted.  We have identified three different approaches for fea-
   ture interdiction: maximization, conditional and survival.

     * The interdiction maximization approach interdicts a feature even
     if only one of the actions that represents it in the join is inter-
     dicted.

     * The conditional interdiction approach interdicts an action join
     if some of the actions that are joined are interdicted, but not
     all, and there are actions outside the join that are not inter-
     dicted.

     * The survival maximization approach interdicts an action join only
     when all of the actions that are joined are interdicted.

4.4. Final selection

   The set submitted to the selection phase represent the features that
   do not generate FI.

   IRAdv implementation can adopt any algorithm capable of selecting the
   feature to be presented to the application.  If necessary, feature
   parameters may be updated.

   An algorithm could mark all candidate features for elimination. This
   problem is not addressed here.

5. Security Considerations

   There are several security considerations associated with this pro-
   posal.  Feature interaction results in unexpected behaviors. The
   unexpected behaviors may include access to confidential information.
   The FI resolution is targeted to avoid such unexpected behaviors but,
   itself, may raise security concerns.

   Information exchange between IRAdvs must be properly authenticated.
   data Moreover, data corruption must be avoided by adopting integrity
   mechanisms.



Crespo & Logrippo          Expires April 2009                  [Page 15]





                   Resolution of Feature Interactions   October 15, 2008


6. IANA Considerations

   To allow the development of FI resolvers, as specified in this docu-
   ment, by different developers, registries must be assigned for a num-
   ber of message fields. The message fields, defined by the FIRP proto-
   col, are explained in section 3 of this document.  Also, IRAdv pro-
   vides a service through a contact port, to be defined by IANA.

6.1. Registries for messages between LA e LIRAdv

   The messages sent by LA to LIRAdv are specified in section 3.2 of
   this document.  The messages sent by LIRAdv to LA are specified in
   section 3.3 of this document.

     * Feature basic actions, such as listed in table 1.

     * Application status, to which the application assigned a true
     value.

     * ConfirmDirective values, as listed in table 2.

     * Registry value for NO_ADVICE, for the case when LIRAdv is unable
     to select one feature for execution.

6.2. Registries for messages between LIRAdv and RIRAdv

   Registries must be assigned to a number of fields for the messages
   exchanged between the LIRAdv and the RIRAdv. Such messages are speci-
   fied in sections 3.4 and 3.5 of this document.

     * ConfirmationCode values, as listed in table 3.

7. Acknowledgements

   This document is based on discussions with Tom Gray of PineTel, and
   Jacques Sincennes of the University of Ottawa, who contributed sig-
   nificantly to the ideas presented here.

8. References

8.1 Normative references

   [1] S. Bradner, Key words for use in RFCs to Indicate Requirement
     Levels, BCP 14, RFC 2119, March 1997.

8.2 Informative references

   [2] J. Klensin, Simple Mail Transfer Protocol, RFC 5321, October



Crespo & Logrippo          Expires April 2009                  [Page 16]





                   Resolution of Feature Interactions   October 15, 2008


     2008.

   [3] R. Hall, Feature Interactions in Electronic Mail, 5th Intl Work-
     shop on Feature Interactions in Telecommunication and Software Sys-
     tems, pp. 232-246, September 1998.

   [4] J. Lennox, H. Schulzrinne, Feature Interactions in Internet Tele-
     phony, 6th Intl Workshop on Feature Interactions in Telecommunica-
     tion and Software Systems, pp. 38-50, May 1998.

   [5] M. Weiss, Feature Interactions in Web Services, 7th Intl Workshop
     on Feature Interactions in Telecommunication and Software Systems,
     pp. 149-156, 2003.

   [6] M. Nakamura, Y. Igaki, K.-i. Matsumoto, Feature Interactions in
     Integrated Services of Networked Home Appliances, 8th Intl Confer-
     ence on Feature Interactions in Telecommunications and Software
     Systems, pp. 236-251, 2005.

   [7] M. Calder, M. Kolberg, E. Magill, S. Reiff-Marganiec, Feature
     interaction: a critical review and considered forecast, Computer
     Networks, Vol. 41, No. 1, pp. 115-141, January 2003.

   [8] K.P. Pomakis, J.M. Atleem Reachability analysis of feature inter-
     actions: a progress report, ACM SIGSOFT Intl Symposium on Software
     Testing and Analysis, pp. 216-223, January 1996.

   [9] E.J. Cameron, N. Griffeth, Y.-J. Lin, M.E. Nilson, W.K. Schnure,
     Feature interaction benchmark for IN and beyond, Intl Workshop on
     Feature Interactions in Telecommunications Systems, pp. 1-23, 1994.

   [10] R.G. Crespo, M. Carvalho, L. Logrippo, Distributed Resolution of
     Feature Interactions for Internet Applications, Computer Networks,
     Vol. 51, No. 2, pp. 382-397, February 2007.

   [11] A.F. Layouni, L. Logrippo, J.T. Turner, Conflict Detection in
     Call Control Using First-Order Logic Model Checking, 9th Intl Con-
     ference on Feature Interactions in Software and Communications Sys-
     tems, September 2007.

Author's Addresses

   Rui Gustavo Crespo
   Electrical and Computer Engineering Department
   Technical University of Lisbon
   Av. Rovisco Pais, 1049-001 Lisboa
   Portugal




Crespo & Logrippo          Expires April 2009                  [Page 17]





                   Resolution of Feature Interactions   October 15, 2008


   Phone: +351 - 21 8417 626

   EMail: R.G.Crespo@comp.ist.utl.pt

   Luigi Logrippo
   Departement de Informatique et Ingenierie
   Universite du Quebec en Outaouais
   Case Postale 1250, Succ. B, Gatineau QC J8X 3X7
   Canada

   Phone: (819) 595-3900 x 1885

   Email: luigi@uqo.ca






































Crespo & Logrippo          Expires April 2009                  [Page 18]





                   Resolution of Feature Interactions   October 15, 2008


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
   THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
   ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
   PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed
   to pertain to the implementation or use of the technology
   described in this document or the extent to which any license
   under such rights might or might not be available; nor does it
   represent that it has made any independent effort to identify any
   such rights.  Information on the procedures with respect to
   rights in RFC documents can be found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use
   of such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository
   at http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention
   any copyrights, patents or patent applications, or other
   proprietary rights that may cover technology that may be required
   to implement this standard.  Please address the information to the
   IETF at ietf-ipr@ietf.org.











Crespo & Logrippo          Expires April 2009                  [Page 19]