Internet DRAFT - draft-ioag-base

draft-ioag-base




               Individual-Submissions                                     Odo Maletzki 
               Internet Draft                                       INTERNET ONLINE AG 
               Document: <draft-ioag-base-00.txt>                      Thilo Dieckmann 
               Category: Informational                              INTERNET ONLINE AG 
               24 April 2000                                          Martin Grundmann 
                                                                    INTERNET ONLINE AG 
                
                
                        BASE (Billing- and Accounting-System Exchange-Protocol)  
                                        Protocol Specification 
                
                
               1. Status of this Memo 
                
                  This document is an Internet-Draft and is in full conformance with 
                  all provisions of Section 10 of RFC2026 [1].  
                   
                  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. 
                   
                  The distribution of this memo is unlimited. It expires October 31, 
                  2000. 
                  Please send comments to the authors. 
                   
               2. Copyright Notice 
                   
                  Copyright (C) The Internet Society (2000). All Rights Reserved. 
                   
               3. Abstract 
                   
                  The Billing and Accounting System Exchange (BASE) protocol is 
                  intended for use for the data transfer between the subsystems of a 
                  distributed billing and accounting system. It defines the 
                  communication between central billing engines (BEs) and one or more 
                  locally or remotely installed billing agents (BAs). BAs are used to 
                  supply the BEs with load data used for billing and accounting 
                  purposes. BEs are responsible for the process of billing and 
                  accounting as well as for the configuration of the BAs and their 
                  connected source systems. This document defines and describes the 
                  BASE protocol 
                   
                 
               Maletzki e.a.             Informational - October 31, 2000          1 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
               4. Table of Contents 
                   
                  1. Status of this Memo.............................................1 
                  2. Copyright Notice................................................1 
                  3. Abstract........................................................1 
                  4. Table of Contents...............................................2 
                  5. Introduction....................................................3 
                  5.1. Why a new protocol ?..........................................4 
                  6. General Structure of BASE.......................................5 
                  6.1. BASE Networking Topology......................................5 
                  6.1.1. Entry-level Configuration...................................5 
                  6.1.2. Configuration with a single full-functional Mex Node........5 
                  6.1.3. Configuration with multiple full-functional Mex Nodes.......5 
                  6.2. BASE Protocol Object..........................................6 
                  6.3. BASE vs OSI...................................................7 
                  6.4. Addressing....................................................7 
                  6.5. Time Synchronization..........................................7 
                  6.6. General Error Handling........................................8 
                  6.7. Content Encryption............................................8 
                  7. BASE Specifications.............................................8 
                  7.1. BASE Link Management..........................................9 
                  7.1.1. Finite State Machine (Peer).................................9 
                  7.1.2. Finite State Machine (Mex).................................12 
                  7.2. Mex Functionality............................................14 
                  7.3. BASE Flow Management.........................................14 
                  7.3.1. Finite State Machine.......................................15 
                  7.4. Transactions.................................................21 
                  7.4.1. Single-message transaction.................................21 
                  7.4.2. Two-message transaction....................................21 
                  7.4.3. Table of transactions......................................22 
                  7.5. Messages.....................................................22 
                  7.5.1. Message Format.............................................22 
                  7.5.2. Message Header.............................................22 
                  7.5.3. Message element container..................................25 
                  7.5.4. Message Fragmentation and Re-assembly......................26 
                  7.6. BASE link-level Messages.....................................26 
                  7.6.1. OPENLNKREQ Message.........................................26 
                  7.6.2. OPENLNKRES Message.........................................27 
                  7.6.3. CLOSELNK Message...........................................28 
                  7.6.4. SYNCREQ Message............................................28 
                  7.6.5. SYNCDATA Message...........................................29 
                  7.7. BASE flow-level Messages.....................................30 
                  7.7.1. OPENREQ message............................................31 
                  7.7.2. OPENRES Message............................................31 
                  7.7.3. CLOSE Message..............................................32 
                  7.7.4. REGISTERREQ Message........................................32 
                  7.7.5. REGISTERRES Message........................................33 
                  7.7.6. ACCOUNTADDREQ Message......................................36 
                  7.7.7. ACCOUNTADDRES Message......................................37 
                  7.7.8. ACCOUNTDELREQ Message......................................38 
                  7.7.9. ACCOUNTDELRES Message......................................39 
                  7.7.10. ACCOUNTCHANGEREQ Message..................................39 
                  7.7.11. ACCOUNTCHANGERES Message..................................40 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   2 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  7.7.12. ACCOUNTSUSPENDREQ Message.................................41 
                  7.7.13. ACCOUNTSUSPENDRES Message.................................42 
                  7.7.14. ACCOUNTUNSUSPENDREQ Message...............................42 
                  7.7.15. ACCOUNTUNSUSPENDRES Message...............................43 
                  7.7.16. ACCOUNTREQ Message........................................43 
                  7.7.17. ACCOUNTRES Message........................................44 
                  7.7.18. POLICYADDREQ Message......................................45 
                  7.7.19. POLICYADDRES Message......................................46 
                  7.7.20. POLICYDELETEREQ Message...................................47 
                  7.7.21. POLICYDELETERES Message...................................48 
                  7.7.22. POLICYCHANGEREQ Message...................................48 
                  7.7.23. POLICYCHANGERES Message...................................49 
                  7.7.24. POLICYSTARTREQ Message....................................49 
                  7.7.25. POLICYSTARTRES Message....................................50 
                  7.7.26. POLICYSTOPREQ Message.....................................50 
                  7.7.27. POLICYSTOPRES Message.....................................51 
                  7.7.28. POLICYRESETREQ Message....................................51 
                  7.7.29. POLICYRESETRES Message....................................52 
                  7.7.30. LIFSTARTREQ Message.......................................52 
                  7.7.31. LIFSTARTRES Message.......................................53 
                  7.7.32. LIFSTOPREQ Message........................................53 
                  7.7.33. LIFSTOPRES Message........................................54 
                  7.7.34. LIFDATA Message...........................................54 
                  8. BASE Flow Example..............................................55 
                  8.1. Communication table..........................................56 
                  8.2. Remarks to the communication table...........................57 
                  9. BASE Definitions...............................................62 
                  9.1. Data Types...................................................62 
                  9.2. Load Types...................................................62 
                  9.3. Peer Types...................................................63 
                  9.4. Message Types................................................64 
                  9.5. Error codes..................................................64 
                  9.5.1. BASE protocol errors:......................................64 
                  9.5.2. Application errors:........................................64 
                  9.6. Regular BASE Expressions.....................................64 
                  9.6.1. Grammar....................................................65 
                  9.6.2. Explanation:...............................................65 
                  10. Security Considerations.......................................67 
                  11. References....................................................67 
                  12. Acknowledgments...............................................68 
                  13. Author's Addresses............................................68 
                  14. Full Copyright Statement......................................68 
                  15. Expiration Date...............................................69 
                   
                   
               5. Introduction 
                   
                  The Billing and Accounting System Exchange (BASE) protocol is 
                  intended for use for the data transfer between the subsystems of a 
                  distributed billing and accounting system. It defines the 
                  communication between central billing engines (BEs) and one or more 
                  locally or remotely operated billing agents (BAs). BAs are used to 
                  supply the BEs with load data needed for billing and accounting 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   3 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  purposes. BEs are responsible for the process of billing and 
                  accounting as well as for the configuration of the BAs and their 
                  connected source systems. 
                   
                  The load data that is transferred from a BA to the BE is generated 
                  by these source systems (e. g. Radius servers) that are 
                  communicating with the BA. They actively or passively provide 
                  information to the BA about the use of their services. The pay load 
                  enables the BE to relate load data to users accordingly, thus 
                  permitting proper billing of products and services. The data 
                  transmitted from the BE to the BA is used for the configuration of 
                  the BA and their connected source systems, and to control the flow 
                  of the load data. A single BE serves and receives data from multiple 
                  - locally or remotely - installed BAs, which in turn control one or 
                  more source systems and process their data. 
                   
                  BASE was defined by INTERNET ONLINE AG (IOAG) as a part of the 
                  development of their BillingWare product. It is, however, not 
                  restricted to a specific product, but allows a standardized 
                  communication within a distributed system of load data generators 
                  and load data analyzers. 
                   
                  This document describes the functionality of the BASE protocol, its 
                  elements and everything needed to provide an implementation. 
                   
               5.1. Why a new protocol ? 
                   
                  The architecture of a distributed billing and accounting system 
                  requires an underlying transport mechanism which fulfills the 
                  following requirements: 
                   
                  - The registration of BA services with the BE need to be processed 
                    in a simple way. 
                   
                  - Effective mechanisms to control license keys are required by the 
                    manufacturers of components of a distributed billing and  
                    accounting system. 
                   
                  - It should only allocate a minimum of bandwidth for the  
                    transmission of the measured load information. 
                   
                  - Transmission of account and load information should be independent  
                    of the source systems. 
                   
                  Currently, none of the existing protocols fulfills all of the 
                  requirements listed above, leading to the design of the BASE 
                  protocol. The BASE implementation of the INTERNET ONLINE AG 
                  demonstrates, that performance and  reliability meet the 
                  requirements of a large, highly distributed system with high 
                  transaction frequency. 
                   


                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   4 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Furthermore, the standardization of the communication within a 
                  network of billing and accounting components helps manufacturers and 
                  vendors to create and implement scalable and integrative products. 
                   
               6. General Structure of BASE 
                   
                  This chapter introduces the main features and functions of the BASE 
                  protocol. It gives an overview of the BASE network components and 
                  its layout, relates the protocol layers to OSI, and discusses the 
                  aspects of addressing, time synchronization and error handling. 
                   
               6.1. BASE Networking Topology 
                   
                  The BASE network consists of three types of network nodes: peer 
                  nodes, message exchange (mex) nodes and peer nodes with an 
                  integrated mex node. 
                   
                  A peer node is either a billing engine (BE) or a billing agent (BA) 
                  and can only connect to a mex node. A mex node is either full-
                  functional or low-entry. In contrast to full-functional mex nodes 
                  which can be interconnected, low-entry mex nodes are integrated in a 
                  BE peer node. 
                   
                  The BASE protocol defines the communication between peer and mex 
                  nodes as well as the communication among mex nodes. 
                  There are basically three possibilities to design a BASE network 
                  which are illustrated below. Note that BASE version 1 only supports 
                  the entry-level configuration. The full-functional mex nodes will be 
                  introduced in version 2. 
                   
               6.1.1. Entry-level Configuration 
                   
                  The billing engine (BE) integrates a low-entry mex node that 
                  communicates with directly connected billing agents (BAs). In this 
                  configuration there is only one BE serving multiple BAs. 
                   
               6.1.2. Configuration with a single full-functional Mex Node 
                   
                  This is a configuration with a single full-functional mex node that 
                  is responsible to route the BASE data according to the BASE 
                  destination address of the transmitted data. All peer nodes (BEs as 
                  well as BAs) are connected to this mex. BAs are able to 
                  simultaneously communicate with multiple BEs. 
                  This configuration is not supported in BASE version 1. 
                   
               6.1.3. Configuration with multiple full-functional Mex Nodes 
                   
                  This is a configuration with multiple interconnected full-functional 
                  mex nodes. They are responsible to route the BASE data according to 
                  the BASE destination address of the transmitted data. All peer nodes 
                  (BEs as well as BAs) are each connected to one of the mex nodes. BAs 
                  are able to simultaneously communicate with multiple BEs. 
                  This configuration is not supported in BASE version 1. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   5 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
               6.2. BASE Protocol Object 
                   
                  Every node of a BASE network needs a BASE protocol object to be able 
                  to communicate. The BASE protocol object is a software 
                  implementation of the BASE protocol as it is described in this 
                  document. The following diagram illustrates the general structure 
                  and the interfaces of the protocol object. 
                   
                  The BASE protocol object interfaces to the BASE application by means 
                  of an Application Programming Interface (API). Both, the structure 
                  and the nature of this API are implementation-specific and are not 
                  covered within this document. The function names used in above 
                  diagram are only meant to be examples. 
                   
                  There are three major services provided for the application. The 
                  BASE flow management is used to open and close connections between 
                  two peer nodes. Transaction processing is done via the general 
                  message interface. Additionally access to the currently valid BASE 
                  time is offered. 
                   
                  The BASE protocol object tracks the state of all BASE flows it 
                  participates in. To achieve this, it creates a state machine for 
                  each flow. Currently, mexes do not participate in BASE flows. 
                   
                  Whenever a request message is sent by the application, it is the 
                  BASE protocol object's responsibility to generate a flow-unique 
                  transaction ID. When responding to a request message, the 
                  application must preserve the transaction ID as used in the 
                  corresponding request. Passing the transaction ID between the 
                  application and the protocol object is implementation-dependent. 
                   
                  From the application's point of view messages are not limited in 
                  length but may carry any number of elements,  however, 
                  implementation-specific restrictions may still apply. Since the data 
                  units that are transmitted over the network are limited in their 
                  length as well as in the number of elements they carry, the protocol 
                  object needs to provide a service to fragment the original message 
                  before transmission and to re-assemble it upon receipt. The 
                  fragments are called message parts throughout this document. 
                   
                  A key factor to the BASE application is the availability of a 
                  network-wide synchronous BASE time. The BASE protocol object 
                  provides access to it and participates in the BASE synchronization 
                  process. 
                   
                  In case of a mex, a routing engine needs to be implemented to 
                  forward message parts according to their destination address over 
                  the appropriate link. 
                   
                  The BASE protocol defines the use of TCP sessions to connect 
                  adjacent BASE nodes. The state of these BASE links is controlled by 
                  the BASE link management. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   6 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
               6.3. BASE vs OSI 
                   
                  Communication between directly connected BASE nodes will be called 
                  BASE links or simply links throughout this document. Links can be 
                  established between a BE and a mex respectively a BA and a mex as 
                  well as among mexes. 
                   
                  Since the BASE link is a point-to-point link, no additional 
                  encapsulation of the higher level data units is done. The BASE link 
                  is used to transport data in units of message parts. 
                   
                  Message parts are transmitted from peer node to peer node traversing 
                  one or more message exchanges (mexes). 
                   
                  If the size of the original message exceeded the maximum allowed 
                  message size and was therefore spread across multiple message parts, 
                  it is re-assembled before being passed to the application layer 
                  above. 
                   
                  The messages used to exchange information between two peer nodes are 
                  transmitted via a BASE flow or simply flow. BAs communicate with BEs 
                  via this flow by means of transactions. A transaction structures the 
                  message flow. The communication between two peers is full-duplex. 
                   
                  If TCP is used as the underlying protocol, all BASE communication is 
                  encapsulated in that OSI layer 4 protocol (currently only TCP is 
                  supported). Under such circumstances all BASE protocol functionality 
                  must be refer to as OSI layer 7 (application layer). 
                   
               6.4. Addressing 
                   
                  Each peer node has a world-wide unique BASE network address 
                  consisting of a 32-bit administrator-defined network number and a 
                  32-bit license key. License keys are given out by the BASE 
                  registration office of the INTERNET ONLINE AG. They will be 
                  generated for all products that adhere to the BASE protocol 
                  definitions given within this document. The license keys have to be 
                  used by the product manufacturer, one key per installation. The 
                  license key generation is free of charge (refer to 
                  http://base.ioag.com). 
                   
                  Every mex uses the license key number "0". 
                  The network number is only configured within mexes. The peer nodes 
                  receive their network number during the opening of the BASE link. 
                   
               6.5. Time Synchronization 
                   
                  BASE provides a common system time. Synchronization of this time 
                  base across all nodes of the BASE network is done via link-level 
                  messages. Each BASE protocol implementation provides a mechanism to 
                  access the current BASE time from the application layer (i. e. for 

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   7 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  billing engines (BE) and billing agents (BA)). The mechanism is 
                  implementation-defined and not part of this document. 
                   
                  Mex nodes synchronize the time amongst themselves. Each mex node is 
                  given a certain priority for the time synchronization process. 
                  Usually, one or two mex nodes (equipped with access to a high-
                  quality clock device) are given a high priority, whereas all nodes 
                  without such devices are given a common, low priority. After a mex 
                  has been initialized, it sends a SYNC message to each neighbor mex 
                  to check its own time parameters against those of the other mexes. 
                  If there is one or more neighbor mexes with a higher priority, the 
                  local mex takes over the time stamp from the neighbor mex with the 
                  highest priority. It additionally keeps the information about this 
                  specific neighbor mex for future synchronization requests that will 
                  only be addressed to this mex. In case the own priority is higher 
                  than those of the neighbors, no further action will be taken. If the 
                  two neighbor mexes have the same priority higher than the requesting 
                  mex, it will store the time stamp and information of the first 
                  neighbor mex. 
                   
                  In addition to the initial processing (as described above), time 
                  synchronization is done periodically. 
                   
                  Peer nodes receive SYNCDATA messages from their adjacent mex 
                  periodically. In addition, they may request a current BASE time-
                  stamp by sending a SYNCREQ message to the mex. A SYNCREQ message is 
                  answered with a SYNCDATA message, which in that specific case 
                  permits measuring the network-added delay, too. This allows the peer 
                  node to compensate network delays by adding an offset to any future 
                  BASE time-stamp received by unsolicited SYNCDATA messages. 
                   
               6.6. General Error Handling 
                   
                  Link layer error handling is done by the TCP layer used to transfer 
                  messages between nodes. 
                  Errors that occur during preparation of messages by the BASE 
                  protocol object are announced to the partner node by means of a 
                  state field in the message header. 
                   
                  Since the current protocol definition only supports low-entry mexes, 
                  no end-to-end transmission control is defined. 
                  Application layer errors are announced to the partner peer by means 
                  of a state field in the message header. 
                   
               6.7. Content Encryption 
                   
                  BASE version 1 does not define any data encryption. 
                   
               7. BASE Specifications 
                   
                  This chapter provides the details needed to understand and implement 
                  the BASE protocol. 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   8 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
               7.1. BASE Link Management 
                   
                  This chapter describes the process of establishing and releasing a 
                  BASE link. 
                   
                  A BASE link is a direct connection between two BASE nodes (between a 
                  peer and a mex node, or between two mexes), initiated by the peer 
                  node (in case of a peer-to-mex link) or either mex (in case of a 
                  mex-to-mex link). As soon as the peer has been started, it tries to 
                  establish a TCP session. Once established, it requests the opening 
                  of the link by sending an "open link request" to the mex. The "open 
                  link request" message carries the unique license key of the peer. 
                  This gives the mex the possibility to store the address to TCP 
                  session handle relation for the later identification of the link. In 
                  the normal case the mex returns an "open link response" message as 
                  an acknowledgment and the BASE link is then open. The response 
                  carries the network number of the mex, which is used by the peer as 
                  its own network number in all future messages. 
                   
                  From the mex's point of view, the opening process differs in that it 
                  immediately opens a predefined TCP socket and waits for incoming TCP 
                  sessions. Once a session has been established, it switches into the 
                  "waiting for an open link request" state. Having received an "open 
                  link request" from the peer, it normally returns a response to open 
                  the link, thus enabling the peer to open one or more flows via this 
                  link. 
                   
                  A link can orderly be closed by either side by issuing a "close" 
                  message, or uncontrolled if the underlying TCP session breaks down. 
                   
                  BASE network nodes (mexes) use TCP port 5429, which has officially 
                  been assigned for this purpose by the Internet Assigned Numbers 
                  Authority (IANA). BASE peer nodes use a dynamically assigned TCP 
                  port. 
                   
               7.1.1. Finite State Machine (Peer) 
                   
                  How BASE links are established and released from the peer's point of 
                  view is shown in the following diagram. To simplify the diagram only 
                  the normal case is considered here, assuming that only legal events 
                  happen. The handling of possible error situations is discussed in 
                  the finite state machine table. The states and possible events used 
                  within this picture are listed below. 
                   
                  The following states are defined: 
                   
                  1.)  INIT 
                               Initial state, there is no active link between the peer  
                               and its corresponding mex 
                  2.)  WAITING FOR OPENLNKRES 
                               The peer has sent an open link request to the mex and  
                               is now waiting for an open link response 
                  3.)  BASE LINK OPEN 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000   9 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                               The peer has received an open link response from the  
                               mex and the link is established 
                  4.)  SHUTDOWN 
                               The peer has shut down 
                   
                  The following events may occur: 
                   
                  1.)  The peer receives an open link response from its corresponding  
                       mex 
                  2.)  The peer receives a message part transmission request from  
                       layer above 
                  3.)  The peer receives message parts from the mex 
                  4.)  The peer receives a close link request from layer above  
                       (the last BASE flow was closed) 
                  5.)  The TCP session went down 
                  6.)  A timeout occurred 
                  7.)  The peer receives a shutdown request from layer above 
                  8.)  INIT state reached 
                   
                  The BASE link state diagram from the peer's point of view: 
                   
                  Finite state machine table: 
                   
                  ----------------------------------------------------------------- 
                  State        Event   Action                          Target state 
                  ----------------------------------------------------------------- 
                  INIT         1       N/a                             INIT 
                               2       Return error to above layer  
                                       (link not open)                 INIT 
                               3       N/a                             INIT 
                               4       No action                       INIT 
                               5       N/a                             INIT 
                               6       N/a                             INIT 
                               7       Shut down                       SHUTDOWN 
                               8       Send OPENLNKREQ                 WAITING FOR  
                                                                       OPENLNKRES 
                  ----------------------------------------------------------------- 
                  WAITING FOR  
                  OPENLNKRES   1       No action                       BASE LINK OPEN 
                               2       Return error to layer above  
                                       (open in progress)              WAITING FOR 
                                                                       OPENLNKRES 
                               3       Close TCP session               INIT 
                               4       Close TCP session               INIT 
                               5       No action                       INIT 
                               6       Close TCP session               INIT 
                               7       Close TCP session               SHUTDOWN 
                               8       N/a                             WAITING FOR 
                                                                       OPENLNKRES 
                  ----------------------------------------------------------------- 
                  BASE LINK  
                  OPEN         1       No action if parameter matches 
                                       else close TCP session -> INIT  BASE LINK OPEN 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  10 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                               2       Send message part to remote mex BASE LINK OPEN 
                               3       Pass message parts to 
                                       layer above                     BASE LINK OPEN 
                               4       Close TCP session               INIT 
                               5       No action                       INIT 
                               6       N/a                             BASE LINK OPEN 
                               7       Close TCP session               SHUTDOWN 
                                       N/a                             BASE LINK OPEN 
                  ----------------------------------------------------------------- 
                  SHUTDOWN     1       N/a     SHUTDOWN 
                               2       Return error to layer above 
                                       (shutdown state)                SHUTDOWN 
                               3       N/a                             SHUTDOWN 
                               4       Return error to layer above  
                                       (shutdown state)                SHUTDOWN 
                               5       N/a                             SHUTDOWN 
                               6       N/a                             SHUTDOWN 
                               7       No action                       SHUTDOWN 
                               8       N/a                             SHUTDOWN 
                  ----------------------------------------------------------------- 
                  ----------------------------------------------------------------- 
                   
                  The INIT state is the initial state of a peer in the BASE link. In 
                  this state there is actually no external event that causes a state 
                  change except a shutdown request from the layer above, which causes 
                  a state transition to SHUTDOWN. Once the INIT state has been 
                  reached, the peer immediately and repeatedly tries to establish a 
                  TCP session to its adjacent mex. It then sends an "open link" 
                  request to this mex and switches to the WAITING FOR OPENLNKRES 
                  state. A message part transmission request received while being in 
                  the INIT state from the layer above will be answered with an error, 
                  indicating that the link is not open. 
                   
                  The WAITING FOR OPENLNKRES state is only reached from the INIT state 
                  by sending an OPENLNKREQ message. Assuming a normal open process, 
                  the expected event in this state is the receipt of an OPENLNKRES 
                  message from the mex, which requires no further action but changes 
                  the state to BASE LINK OPEN. In case of a message part transmission 
                  request from the layer above the peer returns an "open in progress" 
                  error and remains in  its current state. If the peer receives either 
                  a message part from the mex or a "close link" request from the layer 
                  above, or a time-out occurs while being in this state, it closes the 
                  TCP session and returns to the INIT state. The peer also reacts with 
                  a state change to INIT, if the TCP session breaks while waiting for 
                  an "open link" request. In this case no further action will be 
                  taken. In case of a "shutdown" request from the layer above the TCP 
                  session has to be closed by the peer before going to the SHUTDOWN 
                  state. 
                   
                  The peer must wait for an incoming OPENLNKRES message for at least 
                  ten seconds.  
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  11 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Having reached the BASE LINK OPEN state from the WAITING FOR 
                  OPENLNKRES state by getting an "open link" response, there are three 
                  events that cause a state change. A "shutdown" request from the 
                  layer above will cause the peer to close the TCP session and switch 
                  into the SHUTDOWN state. In case the peer receives a "close link" 
                  request from the layer above or the TCP session goes down, it 
                  changes its state to INIT. In the first case it is necessary to 
                  orderly close the TCP session before. A peer is allowed to accept an 
                  "open link" response while being in the BASE LINK OPEN state, 
                  provided that the connection parameters match. No action is 
                  required, the state remains unchanged. Otherwise, if the connection 
                  parameters do not match, the TCP session has to be closed and the 
                  peer switches to the INIT state. While being in the BASE LINK OPEN 
                  state, the peer will perform any message part transmission request 
                  from the layer above as well as pass any received message part to 
                  the layer above. A time-out cannot occur. 
                   
                  The SHUTDOWN state can be reached from any other state by receiving 
                  a shutdown request from the layer above. The only way to get out of 
                  this state is by destroying the BASE protocol object. 
                   
               7.1.2. Finite State Machine (Mex) 
                   
                  How BASE links are established and released from the mex's point of 
                  view is shown in the following diagram. To simplify the diagram only 
                  the normal case is considered here, assuming that only legal events 
                  happen. The handling of possible error situations is discussed in 
                  the finite state machine table. The states and possible events used 
                  within this picture are listed below. 
                  The following states are defined: 
                   
                  1.)  INIT 
                               Initial state, there is no active link between the peer  
                               and its corresponding mex 
                  2.)  WAITING FOR OPENLNKREQ 
                               The peer has sent an open link request to the mex and  
                               is now waiting for an open link response 
                  3.)  BASE LINK OPEN 
                               The peer has received an open link response from the  
                               mex and the link is established 
                   
                  The following events may occur: 
                   
                  1.)  The mex receives an open link request from a peer 
                  2.)  The mex receives a message part transmission request from 
                       routing layer 
                  3.)  The mex receives message parts 
                  4.)  The mex receives a close link request from a BE  
                       (applies to low-entry mex only) 
                  5.)  The TCP session went down 
                  6.)  A time-out occurred 
                  7.)  TCP session established 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  12 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Finite state machine table: 
                   
                  ----------------------------------------------------------------- 
                  State        Event   Action                          Target state 
                  ----------------------------------------------------------------- 
                  INIT         1       N/a                             INIT 
                               2       Return error to above/ 
                                       routing layer (link not open)   INIT 
                               3       N/a                             INIT 
                               4       No action                       INIT 
                               5       N/a                             INIT 
                               6       N/a                             INIT 
                               7       No action                       WAITING FOR 
                                                                       OPENLNKREQ 
                  ----------------------------------------------------------------- 
                  WAITING FOR  
                  OPENLNKREQ   1       Send open link response to  
                                       remote peer,  
                                       notify routing layer            BASE LINK OPEN 
                               2       Return error to above layer  
                                       (open in progress)              WAITING FOR  
                                                                       OPENLNKREQ 
                               3       Close TCP session               INIT 
                               4       Close TCP session               INIT 
                               5       No action                       INIT 
                               6       Close TCP session               INIT 
                               7       N/a                             WAITING FOR  
                                                                       OPENLNKREQ 
                  ----------------------------------------------------------------- 
                  BASE LINK  
                  OPEN         1       Send open link response  
                                       if parameters match  
                                       else close TCP session -> INIT  BASE LINK OPEN 
                               2       Send message part               BASE LINK OPEN 
                               3       Pass message parts to  
                                       layer above                     BASE LINK OPEN 
                               4       Close TCP session               INIT 
                               5       Notify routing layer            INIT 
                               6       N/a                             BASE LINK OPEN 
                               7       N/a                             BASE LINK OPEN 
                  ----------------------------------------------------------------- 
                  ----------------------------------------------------------------- 
                   
                  The INIT state is the initial state of a mex. In this state the only 
                  event that causes a state change is the successful establishment of 
                  a TCP session, inducing the mex to switch into the OPENLNKREQ state. 
                  Any other event will neither cause a state change nor any further 
                  action, except a transmission request from the route layer is 
                  returned a "link not open" error. 
                   
                  The WAITING FOR OPENLNKREQ state is reached from the INIT state as 
                  soon as a TCP session, that was initiated by the adjacent peer, has 
                  been established. Normally the mex sends an "open link" response to 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  13 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  the peer to open the link and switches into the BASE LINK OPEN 
                  state. In case of incoming message parts, a "close link" request 
                  from the BE, a TCP session break down or a time-out, the mex returns 
                  to the INIT state. The TCP session has to be closed before if 
                  necessary. Message part transmission requests from the above/routing 
                  layer will be answered with an "open in progress" error. The state 
                  remains unchanged. 
                   
                  The mex must wait for an OPENLNKREQ message for at least ten seconds 
                  after the establishment of a TCP session. 
                   
                  The BASE LINK OPEN state is reached from the WAITING FOR OPENLNKREQ 
                  state after having received an "open link" request from the local 
                  peer and having returned an "open link" response. In the normal case 
                  the mex performs transmission requests and forwards received 
                  messages accordingly while being in this state. It is also allowed 
                  to accept another "open link" request from the peer as long as the 
                  connection parameters match. It will then return an "open link" 
                  response and resume its activities. Otherwise, if the connection 
                  parameters of an incoming "open link" request do not match, the TCP 
                  session is closed and the mex's state becomes INIT. In case of a 
                  "close link" request from the BE, the mex complies and closes the 
                  TCP session before going into the INIT state. In case the TCP 
                  session goes down, the routing layer has to be notified and the 
                  state has to be changed to INIT. 
                   
               7.2. Mex Functionality 
                   
                  A mex is a combined BASE message switch and message router. Every 
                  peer node has to connect to a mex which provides a message switching 
                  function for all directly connected peer nodes. When connecting 
                  multiple mexes, each mex is treated as a sub-network and message are 
                  routed between the mexes. 
                   
                  However, in the current BASE version 1, only entry-level mexes are 
                  defined. These provide only a subset of the mex functionality in 
                  that they may not link to other mexes. Therefore the current BASE 
                  definition only provides for distinct islands of BASE peer nodes, 
                  where one of these nodes acts both as a peer and a low-entry mex 
                  node. 
                   
               7.3. BASE Flow Management 
                  This chapter describes the process of opening and closing a BASE 
                  flow. 
                  The opening of a BASE flow between a BE and a BA requires an initial 
                  two-way handshake process of "open" messages. It can be initiated by 
                  either side but the full transaction must be completed to 
                  successfully open the flow. In the normal case the BA sends a 
                  regular open request to the BE just after the BASE link has been 
                  established. The BE replies by means of a regular open response 
                  message to acknowledge the opening of the flow. The "open" 
                  transaction has to be executed synchronously, which means that a 

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  14 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  peer must wait for a response to a preceding open request before 
                  being allowed to send any other kind of message. 
                   
                  In case the BE rejects the open request, the BA will continue 
                  sending open requests until a positive response is returned. 
                  A flow that was previously interrupted by means of a "close" message 
                  may be resumed at a later point in time. To do so, either side has 
                  to initiate an "open" transaction with the appropriate message 
                  parameter set to "reopen". The remote peer may reject the "reopen" 
                  mode in which case the transaction is treated by both peers as if it 
                  was a regular "open" transaction. Switching to the "regular open" 
                  mode leads to the same transaction overhead (configuration of the BA 
                  by the BE) as the initial open, and therefore should be seen as a 
                  measure of last resort. 
                   
                  It may also occur that both peers request the opening of the flow at 
                  the same time. In this case each peer receives an "open" request 
                  just after having send one. In case the "reopen" modes are 
                  compatible, the incoming "open" request is answered by returning an 
                  "open" response and the flow is immediately opened. The outstanding 
                  "open" response will be ignored since only one flow per peer-to-peer 
                  couple can be opened at the same time. 
                   
                  A flow may be terminated by either side of the communication by 
                  issuing a "close" message. No response is expected. The termination 
                  of the last flow of a peer also terminates its link to the mex. 
                   
               7.3.1. Finite State Machine 
                   
                  How BASE flows are opened and closed is graphically presented in the 
                  following state diagram. To simplify the diagram only the normal 
                  case is considered here, assuming that only legal events happen. The 
                  handling of possible error situations is discussed in the finite 
                  state machine table. The states and possible events used within this 
                  picture are listed below. 
                   
                  The following states are defined: 
                   
                  1.)  INIT 
                               Initial state, there is no active or pending flow  
                               between two peers 
                  2.)  OPEN SENT 
                               This peer sent an open request to the remote peer 
                  3.)  WAITING FOR APPL RESP 
                               This peer has received an open request from the remote  
                               peer and is waiting for a response from the application 
                  4.)  OPEN 
                               The BASE flow is open 
                  5.)  CLOSED 
                               The flow is closed 
                  6.)  REOPEN SENT 
                               This peer sent a reopen request to the remote peer 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  15 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The following events may occur: 
                   
                  1.)  The application requests the regular opening of the flow 
                  2.)  The application requests the re-opening of the flow 
                  3.)  The application requests the transmission of a message other  
                       than OPEN* or CLOSE 
                  4.)  The application requests the closing of the flow or the BASE  
                       protocol object is destructed 
                  5.)  An OPENREQ (regular) message was received from the remote peer 
                  6.)  An OPENRES (regular) message was received from the remote peer 
                  7.)  An OPENREQ (reopen) message was received from the remote peer 
                  8.)  An OPENRES (reopen) message was received from the remote peer 
                  9.)  A CLOSE message was received from the remote peer 
                  10.) A message other than OPEN* or CLOSE was received from the  
                       remote peer 
                  11.) A semi-permanent transmission error was detected by the BASE   
                       link layer 
                  12.) The application confirmed the "open" request 
                   
                  The state machine is partly left ambiguous. If the peer is for 
                  instance in the OPEN SENT state and receives a close message from 
                  the remote peer, its state should return to its previous one. It is 
                  not apparent from the diagram whether this was the INIT or the 
                  CLOSED state. For the sake of simplicity the INIT and the CLOSED 
                  state are here treated as only one. 
                   
                  Finite state machine table: 
                   
                  ----------------------------------------------------------------- 
                  State        Event   Action                          Target state 
                  ----------------------------------------------------------------- 
                  INIT         1       Send OPENREQ (regular)  
                                       to remote peer                  OPEN SENT 
                               2       Return error to application  
                                       (regular open required)         INIT 
                               3       Return error to application 
                                       (flow not open)                 INIT 
                               4       No action                       INIT 
                               5       Notify application              WAITING FOR 
                                                                       APPL RESP 
                               6       No action                       INIT 
                               7       Notify application of  
                                       regular OPENREQ                 WAITING FOR 
                                                                       APPL RESP 
                               8       No action                       INIT 
                               9       No action                       INIT 
                               10      Send CLOSE to remote peer       INIT 
                               11      No action                       INIT 
                               12      N/a                             INIT 
                  ----------------------------------------------------------------- 
                  OPEN SENT    1       Return error to application  
                                       (open in progress)              OPEN SENT 
                               2       Return error to application  
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  16 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                                       (open in progress)              OPEN SENT 
                               3       Return error to application 
                                       (open in progress)              OPEN SENT 
                               4       Send CLOSE message to  
                                       remote peer                     INIT/CLOSED 
                               5       Send OPENRES (regular)          OPEN 
                               6       No action                       OPEN 
                               7       Notify application              WAITING FOR  
                                                                       APPL RESP 
                               8       Send CLOSE message to  
                                       remote peer  
                                       (Protocol violation)            INIT/CLOSED 
                               9       No action                       INIT/CLOSED 
                               10      Notify application,  
                                       send CLOSE to remote peer       INIT/CLOSED 
                               11      Notify application  
                                       (open failed)                   INIT/CLOSED 
                               12      N/a                             OPEN SENT 
                  ----------------------------------------------------------------- 
                  REOPEN SENT  1       Return error to application  
                                       (open in progress)              REOPEN SENT 
                               2       Return error to application 
                                       (open in progress)              REOPEN SENT 
                               3       Return error to application 
                                       (open in progress)              REOPEN SENT 
                               4       Send CLOSE message to  
                                       remote peer                     CLOSED 
                               5       Send error to remote peer  
                                       (open in progress)              REOPEN SENT 
                               6       Notify application              OPEN 
                               7       Send OPENRES (reopen)  
                                       to remote peer                  OPEN 
                               8       No action                       OPEN 
                               9       Notify application  
                                       (flow is closed)                CLOSED 
                               10      Notify application, 
                                       send CLOSE to remote peer       CLOSED 
                               11      Notify application  
                                       (reopen failed)                 CLOSED 
                               12      N/a                             REOPEN SENT 
                  ----------------------------------------------------------------- 
                  WAITING FOR  
                  APPL RESP    1       Return error to application 
                                       (open in progress)              WAITING FOR 
                                                                       APPL RESP 
                               2       Return error to application 
                                       (open in progress)              WAITING FOR  
                                                                       APPL RESP 
                               3       Return error to application 
                                       (open in progress)              WAITING FOR  
                                                                       APPL RESP 
                               4       Send CLOSE message to  
                                       remote peer                     INIT/CLOSED 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  17 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                               5       No action                       WAITING FOR  
                                                                       APPL RESP 
                               6       No action                       WAITING FOR  
                                                                       APPL RESP 
                               7       Return error to  
                                       remote peer (open in progress)  WAITING FOR  
                                                                       APPL RESP 
                               8       Send CLOSE message to remote 
                                       peer (protocol violation)       CLOSED 
                               9       Notify application              INIT/CLOSED 
                               10      Notify application, 
                                       send CLOSE to remote peer       INIT/CLOSED 
                               11      Notify application  
                                       (open failed)                   INIT/CLOSED 
                               12      Send OPENRES to remote peer     OPEN 
                  ----------------------------------------------------------------- 
                  OPEN         1       Notify application  
                                       (flow already open)             OPEN 
                               2       Notify application  
                                       (flow already open)             OPEN 
                               3       Transmit message                OPEN 
                               4       Send CLOSE message to  
                                       remote peer                     CLOSED 
                               5       Notify application  
                                       (flow closed) Notify  
                                       application (OPENREQ regular)   WAITING FOR  
                                                                       APPL RESP 
                               6       No action                       OPEN 
                               7       Send OPENRES (reopen)           OPEN 
                               8       No action               OPEN 
                               9       Notify application  
                                       (flow is closed)                CLOSED 
                               10      Notify application              OPEN 
                               11      Notify application  
                                       (transmission failed)           OPEN 
                               12      N/a                             OPEN 
                  ----------------------------------------------------------------- 
                  CLOSED       1       Send OPENREQ (regular)  
                                       to remote peer                  OPEN SENT 
                               2       Send OPENREQ (reopen)  
                                       to remote peer                  REOPEN SENT 
                               3       Return error to application  
                                       (flow is closed)                CLOSED 
                               4       No action                       CLOSED 
                               5       Notify application              WAITING FOR 
                                                                       APPL RESP 
                               6       Send CLOSE to remote peer       CLOSED 
                               7       Notify application              WAITING FOR  
                                                                       APPL RESP 
                               8       Send CLOSE to remote peer       CLOSED 
                               9       No action                       CLOSED 
                               10      Send CLOSE to remote peer       CLOSED 
                               11      No action                       CLOSED 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  18 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                               12      N/a                             CLOSED 
                  ----------------------------------------------------------------- 
                  ----------------------------------------------------------------- 
                   
                  The INIT state is the initial state of a flow. In this state there 
                  are only three events that can cause a state change. If the 
                  application requests the regular opening of the flow, the peer sends 
                  an OPENREQ (regular) message to the remote peer and switches into 
                  the OPEN SENT state. If the peer receives either an OPENREQ 
                  (regular) or an OPENREQ (reopen) message, it - in both cases -  
                  notifies the application of a regular open request. The state then 
                  is changed to WAITING FOR APPL RESP. In case of the application 
                  requesting the re-opening of the flow or the transmission of a 
                  message other than OPEN* or CLOSE, an error will be returned to the 
                  application. If any other message other than OPEN* or CLOSE is 
                  received from the remote peer, the local peer re-synchronizes the 
                  flow state by sending a CLOSE message to the remote peer, assuming 
                  that a previously sent CLOSE message was probably lost. Any other 
                  event will have no effect, neither an action will be taken nor a 
                  state change will occur. 
                   
                  The OPEN SENT state is either reached from the INIT or from the 
                  CLOSED state by sending an OPENREQ (regular) message. If in this 
                  state the application requests either the opening of the flow - no 
                  matter whether regular or reopen - or the transmission of a message 
                  other than OPEN* or CLOSE, an OPEN_IN_PROGRESS error will be 
                  returned and no state transition is made. If either the application 
                  requests the closing of the flow or a CLOSE message was received 
                  from the remote peer, the state returns to the previous state which 
                  is either INIT or CLOSED. In case the close request came from the 
                  application, the local peer sends a CLOSE message to the remote peer 
                  before closing the flow. A received OPENREQ (regular) message will 
                  be answered by returning an OPENRES (regular) message and the state 
                  becomes OPEN. The outstanding OPENRES (regular) message will be 
                  ignored upon receipt (refer to OPEN state). If the expected OPENRES 
                  (regular) message is received from the remote peer no further action 
                  will be taken and the state is changed to OPEN. An OPENREQ (reopen) 
                  message from the remote peer causes the notification of the 
                  application and the state is changed to WAITING FOR RES. An OPENRES 
                  (reopen) at this time means a protocol violation. The local peer 
                  reacts by sending a CLOSE message to the remote peer and returns to 
                  either INIT or CLOSED state depending on what the previous one was. 
                  If any message but OPEN* or CLOSE arrives at this time, the flow 
                  will be closed by means of a CLOSE message being sent to the remote 
                  peer. The application will be notified and a transition is made to 
                  the state INIT or CLOSED. In case of an open failure caused for 
                  instance by a broken BASE link, the application will be notified and 
                  the state is set back to INIT or CLOSED. 
                   
                  The REOPEN SENT state is either reached from the INIT or from the 
                  CLOSED state by sending an OPENREQ (reopen) message. If the 
                  application requests either the opening of the flow - no matter 
                  whether regular or reopen - or the transmission of a message other 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  19 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  than OPEN* or CLOSE, an OPEN_IN_PROGRESS error will be returned and 
                  no state change will occur. If either the application requests the 
                  closing of the flow or a CLOSE message was received from the remote 
                  peer, the state becomes CLOSED. In the first case the local peer 
                  sends a CLOSE message to the remote peer before closing the flow. If 
                  the expected OPENRES (reopen) message is received from the remote 
                  peer no further action will be taken and the state is changed to 
                  OPEN. The same applies to an OPENRES (regular) message, which may be 
                  sent from the remote peer in case a reopen of the flow is not 
                  possible but a regular open would be acceptable. In case of an 
                  OPENREQ (regular) message received from the remote peer, an 
                  OPEN_IN_PROGRESS error will be returned, the state remains 
                  unchanged. If an OPENREQ (reopen) message was received, the local 
                  peer replies by means of an OPENRES (reopen) and goes to the OPEN 
                  state. The outstanding OPENRES (reopen) will be ignored upon 
                  receipt. If any message except OPEN* or CLOSE arrives at this time, 
                  the flow will be closed by means of a CLOSE message being sent to 
                  the remote peer. The application will be notified and the state is 
                  changed to CLOSED. In case of a reopen failure caused for instance 
                  by a broken BASE link, the application will be notified and the
                  state is set back to CLOSED. 
                   
                  The peer is in the WAITING FOR APPL RESP state after having received 
                  an OPENREQ (regular or reopen)  message and having notified the 
                  application. In case the application requests either the regular 
                  respectively re-opening of the flow or the transmission of a message 
                  other than OPEN* or CLOSE, an OPEN_IN_PROGRESS error is returned and 
                  no state transition is made. If the closing of the flow is requested 
                  from either side, application or remote peer, the state is changed 
                  to INIT respectively CLOSED. In case of an application initiated 
                  close the remote peer has to be notified by means of a CLOSE 
                  message, whereas in the other case the application has to be 
                  notified of the closed flow. An OPENREQ (regular) and an OPENRES 
                  (regular) message received from the remote peer will neither have 
                  any effect on the state nor cause any further action. If an OPENREQ 
                  (reopen) message was received, the OPEN_IN_PROGRESS error will be 
                  returned to the remote peer. The state remains unchanged. An OPENRES 
                  (reopen) message means a protocol violation and must not occur. The 
                  flow will be closed by means of a CLOSE message to the remote peer 
                  and its state will be adjusted accordingly. Any other message but 
                  OPEN* or CLOSE is a protocol violation and causes the closing of the 
                  flow. A CLOSE message will be returned and the application will be 
                  notified accordingly. The state is changed to INIT respectively 
                  CLOSED. An open failure due to a broken link will close the flow. 
                  The application will be notified of the open failure and the state 
                  becomes INIT resp. CLOSED. As soon as the application confirms the 
                  "open" request, an appropriate "open" response is sent to the remote 
                  peer and the state is changed to OPEN. 
                   
                  The OPEN state indicates a successfully opened flow and is reached 
                  from the REOPEN SENT, OPEN SENT or WAITING FOR APPL RESP state. In 
                  this state there are only three events that cause a state change. A 
                  close request from either application or remote peer, or the receipt 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  20 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  of an OPENREQ (regular) message from the remote peer. In case of a 
                  close request from the application, the local peer sends a CLOSE 
                  message to the remote peer for notification, in case of a CLOSE 
                  message received from the remote peer, the application will be 
                  notified. In both cases a transition is made to state CLOSED. If an 
                  OPENREQ (regular) message was received from the remote peer, it is 
                  assumed that a previous CLOSE message had been lost, and the flow 
                  will be closed. The application will be informed of the close and 
                  the following regular open request and the state is immediately 
                  changed to WAITING FOR APPL RESP. No other event will have any 
                  effect on the state, however different actions will be required. If 
                  the application requests the opening or re-opening of the flow, a 
                  "flow-already-open" error will be returned. Any application 
                  transmission request will be executed. An OPENREQ (reopen) message 
                  will be replied by means of an OPENRES (reopen) message. The 
                  application needs to be notified of incoming messages other than 
                  OPEN* or CLOSE, or transmission failures. OPENRES messages will be 
                  ignored. If this state is reached from the OPEN SENT or REOPEN SENT 
                  state, this peer is the initiator of the flow. If this state is 
                  reached from the WAITING FOR APPL RESPONSE state, this peer is the 
                  acceptor of the flow. 
                   
                  The CLOSED state can be reached from any other but the INIT state. 
                  The state will be changed only if either the application or the 
                  remote peer requests the opening of the flow. In the first case an 
                  OPENREQ (regular or reopen) will be sent to the remote peer and the 
                  state is changed to OPEN SENT respectively REOPEN SENT. If the open 
                  request was received from the remote peer, the application will be 
                  notified and the state becomes WAITING FOR APPL RESP. In any other 
                  case the state remains unchanged, however different actions are 
                  required. If the application requests transmission of messages, an 
                  error will be returned. In case of an OPENRES message or any other 
                  message except OPEN* or CLOSE, a CLOSE message will be sent to the 
                  remote peer. Any close request from either side will be ignored. A 
                  broken BASE link will have no effect. 
                   
               7.4. Transactions  
                   
                  Although transactions are not actually part of the BASE protocol, 
                  they are briefly considered here. There are two types of 
                  transactions: 
                   
               7.4.1. Single-message transaction 
                   
                  Transaction consists of a single message 
                  BA---message--->BE or BE---message--->BA 
                   
               7.4.2. Two-message transaction 
                   
                  Transaction consists of two messages, a request message and a 
                  response message 
                   
                  BE----request---->BA 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  21 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  BE<---response---BA 
                   
               7.4.3. Table of transactions 
                   
                  Within BASE 17 transactions are defined: 
                   
                  ---------------------------------------------------------------- 
                  Transaction          Initiated by            Type of message 
                                       BA      BE      Single message  Two message 
                  ---------------------------------------------------------------- 
                  Open                 X       X                       X 
                  Register                     X                       X 
                  Account Add                  X                       X 
                  Account Delete               X                       X 
                  Account Suspend              X                       X 
                  Account Unsuspend            X                       X 
                  Account Change               X                       X 
                  Account                      X                       X 
                  Policy Add                   X                       X 
                  Policy Delete                X                       X 
                  Policy CHANGE                X                       X 
                  Policy Start                 X                       X 
                  Policy Stop                  X                       X 
                  Policy Reset                 X                       X 
                  LIF Start                    X                       X 
                  LIF Stop                     X                       X 
                  LIF Data             X               X        
                  ---------------------------------------------------------------- 
                  ---------------------------------------------------------------- 
                   
               7.5. Messages 
                   
                  There are two types of messages defined in the BASE protocol. The 
                  first type of messages are used to exchange information between BA 
                  and BE as elements of a transaction. The second type of messages are 
                  used to exchange information between the two adjacent nodes of a 
                  link. Currently the only messages that are specified for the latter 
                  category are the time synchronization and link management messages. 
                   
               7.5.1. Message Format 
                   
                  Messages generally consist of a fixed-length header and a variable-
                  length element container: 
                   
                  +------------------+--------------------------------------------+ 
                  | Message (header) | Message element container (variable length)| 
                  +------------------+--------------------------------------------+ 
                   
               7.5.2. Message Header 
                   
                  The message header has the following structure: 
                   
                  +---------------+---------------+---------------+---------------+ 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  22 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  |7|6|5|4|3|2|1|0|7|6|5|4|3|2|1|0|7|6|5|4|3|2|1|0|7|6|5|4|3|2|1|0| 
                  +---------------+---------------+---------------+---------------+ 
                  +---------------+---------------+---------------+---------------+ 
                  | Version 8 bit | Destination address (license key) 32 bit      | 
                  +---------------+---------------+---------------+---------------+ 
                  |               | Destination address (network number) 32 bit   | 
                  +---------------+---------------+---------------+---------------+ 
                  |               | Source address (license key) 32 bit           | 
                  +---------------+---------------+---------------+---------------+ 
                  |               | Source address (network number)32 bit         | 
                  +---------------+---------------+---------------+---------------+ 
                  |               | Msg type      |F|E|r|r|M-state|Transaction ID | 
                  +---------------+---------------+---------------+---------------+ 
                  |               | Msg element count             |MEContainerlen | 
                  +---------------+---------------+---------------+---------------+ 
                  |                                               | 
                  +---------------+---------------+---------------+ 
                   
                

                  Version: 8 bit, indicates the BASE version and currently has a fixed 
                  value of 0x01 
                   
                  Destination address (license key): 32-bit BASE License key (refer to 
                  "Addressing") 
                   
                  Destination address (network number): 32-bit administrator defined 
                  network number 
                   
                  Source address (license key): 32-bit BASE License key (refer to 
                  "Addressing") 
                   
                  Source address (network number): 32-bit administrator defined 
                  network number 
                   
                  Msg type: (8 bits): 
                   
                       --------------------------------+--------------------------- 
                       Message                 Type    | Message               Type 
                       --------------------------------+--------------------------- 
                       OPENREQ                 0x01    | POLICYDELETERES       0x15 
                       OPENRES                 0x02    | POLICYCHANGEREQ       0x16 
                       CLOSE                   0x03    | POLICYCHANGERES       0x17 
                       REGISTERREQ             0x04    | POLICYSTARTREQ        0x18 
                       REGISTERRES             0x05    | POLICYSTARTRES        0x19 
                       ACCOUNTADDREQ           0x06    | POLICYSTOPREQ         0x1A 
                       ACCOUNTADDRES           0x07    | POLICYSTOPRES         0x1B 
                       ACCOUNTDELREQ           0x08    | POLICYRESETREQ        0x1C 
                       ACCOUNTDELRES           0x09    | POLICYRESETRES        0x1D 
                       ACCOUNTCHANGEREQ        0x0A    | LIFSTARTREQ           0x1E 
                       ACCOUNTCHANGERES        0x0B    | LIFSTARTRES           0x1F 
                       ACCOUNTSUSPENDREQ       0x0C    | LIFSTOPREQ            0x20 
                       ACCOUNTSUSPENDRES       0x0D    | LIFSTOPRES            0x21 

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  23 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       ACCOUNTUNSUSPENDREQ     0x0E    | LIFDATA               0x22 
                       ACCOUNTUNSUSPENDRES     0x0F    | SYNCREQ               0x23 
                       ACCOUNTREQ              0x10    | (not used)            0x24 
                       ACCOUNTRES              0x11    | SYNCDATA              0x25 
                       POLICYADDREQ            0x12    | OPENLNKREQ            0x26 
                       POLICYADDRES            0x13    | OPENLNKRES            0x27 
                       POLICYDELETEREQ         0x14    | CLOSELNK              0x28 
                       ------------------------------+--------------------------- 
                   
                  F: flag, 1 bit 
                   
                       "0" means intermediate message part 
                       "1" means final message part 
                   
                  If message transmission requests by the application specifies more 
                  message elements than feasible in a single message (due to either 
                  the 65535 limit of message elements in the message header or message 
                  size limitations in the BASE protocol stack), multiple message parts 
                  have to be generated by the BASE protocol object. All but the last 
                  of these message parts have the "F" flag set to "0". The last 
                  message has this flag set to "1", thus enabling the receiving BASE 
                  protocol object to re-assemble the complete message. 
                   
                  E: flag, 1 bit (since encryption is not supported in BASE version 1, 
                  this flag has to be set to "0") 
                   
                       "0" means message element container is not encrypted 
                       "1" means message element container is encrypted 
                   
                  r: 1 bit reserved for future use, must be set to "0" 
                   
                  r: 1 bit reserved for future use, must be set to "0" 
                   
                  Msg state:  
                  This 4 bit long field serves two purposes: 
                  If the "final" bit is set to "0"(intermediate message part), the 
                  "msg state" resemble an error code of the BASE protocol stack. 
                  Currently the following errors are defined: 
                       0       No error occurred 
                       1       Open in progress 
                       2       License key already in use 
                       14      Protocol violation 
                       15      An internal error occurred 
                       Others  undefined 
                  If the "final" bit is set to "1" (final message part), the "msg 
                  state" reflect an application-defined error code. The value range is 
                  from 0 to 15. Currently the following errors are defined: 
                       0       SUCCESS 
                       1       ERROR 
                       2       SHUTDOWN 
                  Even if the message is marked as a final message by the fragmenter, 
                  the BASE protocol object may decide to set the final bit to "0" in 
                  case of an error. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  24 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
                  Transaction ID: every application-level transaction is tagged with a 
                  per-flow unique transaction ID. This 16 bit long ID has a value 
                  range from 1 to 32767 for the initiator of the flow and 32768 to 
                  65535 for the acceptor of the flow. For messages that are not part 
                  of application-level transactions (i. e. OPENLNKREQ, OPENLNKRES, 
                  OPENREQ, CLOSE) the transaction ID is set to "0". 
                   
                  Msg element count: this 16 bit field indicates the number of 
                  messages in the message element container and has a value range from 
                  0 to 65535. 
                   
                  Msg element container length: this 32-bit field denotes the length 
                  of the message element container in octets. 
                   
               7.5.3. Message element container 
                   
                  The message element container has the following structure: 
                   
                  +--------+--------+--------+-------------------+--------+--------+ 
                  | octet  | octet  | octet  |       ...         | octet  | octet  | 
                  +--------+--------+--------+-------------------+--------+--------+ 
                   
                  The message element container is a byte stream consisting of message 
                  elements. A message element consists of a structure of data elements 
                  that depends on the message type. The data elements are declared 
                  within this documentation. The following BASE data types are used: 
                   
                       Data Type       Data Type ID    Length in bit 
                       BYTE            0x01            8 
                       WORD            0x02            16 
                       DWORD           0x03            32 
                       DOUBLE          0x04            64 
                       STRING          0x05            variable 
                       LOADTYPE        0x06            0 
                   
                  During network transmissions the high byte will be transmitted 
                  before the low byte and within a byte the most significant bit 
                  first. 
                   
                  Parameters of type string are transmitted in the following way: 
                       Len(MSB),Len(LSB),Char,Char,... 
                   
                  The type "LOADTYPE" is never used as a parameter type in the byte 
                  stream. 
                   
                  Throughout the message description, the element declaration contains 
                  a data type tParameterTupel{}. It contains a variably typed 
                  parameter value. To detect the proper parameter type the BASE 
                  protocol object would have to monitor the registration of all 
                  parameters, therefore mapping the ParameterID (contained in the 
                  parameter tupel) to the proper BASE type. To simplify the 
                  implementation of the BASE protocol object, the parameter type is 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  25 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  transmitted in the byte stream leading to the following transmitted 
                  byte order: 
                       ParameterID,Data Type ID,data,... 
                  The API needs to reflect the structure, so that the parameter type 
                  can be communicated from the application to the BASE protocol object 
                  and vice versa. 
                   
               7.5.4. Message Fragmentation and Re-assembly 
                   
                  From a BASE application's perspective, transactions consist of one 
                  or two messages. These messages have structured elements with a 
                  (theoretically) unlimited number of elements. 
                   
                  On the other hand, the BASE protocol can only transmit data units of 
                  a limited size. Therefore it may be required to split up the 
                  application's messages into multiple message parts. 
                   
                  Every message part carries the complete header information, 
                  including transaction ID and message type. Additionally, messages 
                  must be split up in such a way that no elements are broken up across 
                  multiple parts. 
                   
                  If a message needs to be transmitted as a sequence of multiple 
                  parts, all but the last part are flagged as intermediate parts, 
                  whereas the last part is marked as the final one. The message state 
                  that is given by the application is only included in the final 
                  message part, all intermediate parts carry a message state of "0" 
                  unless the BASE protocol object has detected an error. This case is 
                  signaled to the remote peer by setting the message state to an 
                  according error value, but leaving the "intermediate part" flag of 
                  that message. Although this specific message part is flagged as an 
                  intermediate part (with error) no subsequent parts will be sent, and 
                  the receiver must drop all parts received so far. 
                   
                  If the complete message fits in one part, that part is marked as 
                  final. In case the BASE protocol object detects an error during 
                  processing this part, it will again mark the part as "intermediate" 
                  and set the message state to an according error value. 
                   
                  On the receiving side, message parts are re-assembled before being 
                  handed to the application as a complete message. 
                   
               7.6. BASE link-level Messages 
                   
                  Certain messages are used only in the communication of adjacent 
                  nodes. These link-level messages are not forwarded by the mex to 
                  other nodes. 
                  Link-level messages are used to open and close the link, as well as 
                  to perform link-level services. In BASE protocol version 1, BASE 
                  time synchronization is the only service currently defined. 
                   
               7.6.1. OPENLNKREQ Message 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  26 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The OPENLNKREQ message is sent from a peer to its adjacent mex node 
                  just after the TCP session has been established. It is used to make 
                  its BASE address (license key and network number) known to the mex 
                  so that it can be addressed properly in the BASE flow. 
                   
               7.6.1.1. Message Field Values: 
                   
                  Destination address (license key)    0 
                  Destination address (network number) 0 
                  Source address (license key)         License key of local peer 
                  Source address (network number)      0 
                  Msg type                             OPENLNKREQ 
                  Final Flag                           1 
                  Msg state                            0 
                  Transaction ID                       0 
                  Msg element count                    0 
                  Msg element container length         0 
                  Msg element container                - 
                   
               7.6.1.2. Message Element Declaration 
                   
                  N/a 
                   
               7.6.1.3. Comments 
                   
                  The destination address fields are both set to "0" since the network 
                  number of the mex is unknown. 
                  The "source address (network number)" is set to "0" since it is not 
                  known to the peer at this time. The corresponding OPENLNKRES message 
                  will contain the valid network number in the "destination address 
                  (network number)" field. 
                   
               7.6.2. OPENLNKRES Message 
                   
                  The OPENLNKRES message is sent from a mex to a peer node in reply to 
                  an OPENLNKREQ message to indicate that the BASE link is opened. 
                   
               7.6.2.1. Message Field Values: 
                   
                  Destination address (license key)    License key of local peer 
                  Destination address (network number) Network number of adjacent mex 
                  Source address (license key)         0 
                  Source address (network number)      Network number of adjacent mex 
                  Msg type                             OPENLNKRES 
                  Final Flag                           0 or 1 
                  Msg state                            0, 2 or 15 
                  Transaction ID                       0 
                  Msg element count                    0 
                  Msg element container length         0 
                  Msg element container                - 
                   
               7.6.2.2. Message Element Declaration 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  27 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  N/a 
                   
               7.6.2.3. Comments 
                   
                  The mex fills in the local peer's license key and its own network 
                  number into the corresponding destination address fields The local 
                  peer uses both as its fully qualified address for all following 
                  messages. 
                   
               7.6.3. CLOSELNK Message 
                   
                  The CLOSELNK message is sent from either side to orderly close a 
                  BASE link. 
                   
               7.6.3.1. Message Field Values: 
                   
                  Destination address (license key)    Destination license key 
                  Destination address (network number) Local network number 
                  Source address (license key)         Source license key 
                  Source address (network number)      Local Network number 
                  Msg type                             CLOSELNK 
                  Final Flag                           1 
                  Msg state                            0 
                  Transaction ID                       0 
                  Msg element count                    0 
                  Msg element container length         0 
                  Msg element container                - 
                   
               7.6.3.2. Message Element Declaration 
                   
                  N/a 
                   
               7.6.3.3. Comments 
                   
                  No comments 
                   
               7.6.4. SYNCREQ Message 
                   
                  By means of a SYNCREQ message, any node may query the current BASE 
                  time from an adjacent mex. Additionally this message allows to 
                  determine the current network-added delay. 
                   
               7.6.4.1. Message Field Values: 
                   
                  Destination address (license key)    0 
                  Destination address (network number) Local network number 
                  Source address (license key)         Source license key 
                  Source address (network number)      Local network number 
                  Msg type                             SYNCREQ 
                  Final Flag                           1 
                  Msg state                            0 
                  Transaction ID                       0 
                  Msg element count                    1 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  28 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Msg element container length         5 
                   
               7.6.4.2. Message Element Declaration 
                   
                  { 
                       DWORD RefTime; 
                  } 
                   
                  By setting the "RefTime" field to the current time stamp of the 
                  requesting node, the network-added delay between the requesting node 
                  and the answering mex can be estimated. To achieve this the round-
                  trip time of the SYNCREQ/SYNCDATA message is measured by comparing 
                  the original reference time stamp (returned in the corresponding 
                  field of the SYNCDATA message) to the node's time when receiving the 
                  SYNCDATA message. Half of the round-trip time should be added to 
                  each new BASE time stamp (as received in the "CurrentTime" field of 
                  the SYNCDATA message to gain a more precise value). This adjustment 
                  should be used for all further SYNCDATA messages. 
                   
               7.6.4.3. Comments 
                   
                  SYNCREQ messages should be used sparsely. A cycle of i. e. three 
                  SYNCREQ messages every six to twelve hours should be sufficient to 
                  get a proper estimate on the round-trip time. Using more than one 
                  message per cycle allows to rule out single-message delays. 
                   
               7.6.5. SYNCDATA Message 
                   
                  Every mex sends SYNCDATA messages either periodically every thirty 
                  seconds to all adjacent nodes or in response to a SYNCREQ message to 
                  the specific node from which the request was received. 
                   
               7.6.5.1. Message Field Values: 
                   
                  Destination address (license key)    Destination license key 
                  Destination address (network number) Destination network number 
                  Source address (license key)         0 
                  Source address (network number)      Local network number 
                  Msg type                             SYNCREQ 
                  Final Flag                           1 
                  Msg state                            0 
                  Transaction ID                       0 
                  Msg element count                    1 
                  Msg element container length         12 
                   
               7.6.5.2. Message Element Declaration 
                   
                  { 
                       DWORD   CurrentTime; 
                       DWORD   RefTime; 
                       BYTE            Priority; 
                  } 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  29 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The SYNCDATA message always carries the current valid BASE time, as 
                  available on the mex, and the priority value of the mex. The 
                  priority value is set by the administrator of the mex and is usually 
                  used to distinguish mexes into classes of quality of their external 
                  time sources. In case of a low-entry mex the highest priority value 
                  "255" is used regardless of the external time source used. A mex 
                  without any external time source uses a priority value of "0". 
                  In case of a periodically send SYNCDATA message the "RefTime" field 
                  is set to "0". If the SYNCDATA message is sent in response to a 
                  SYNCREQ message the mex fills this field with the content of the 
                  corresponding field of the request message. 
                   
               7.6.5.3. Comments 
                   
                  No comments 
                   
               7.7. BASE flow-level Messages 
                   
                  This section discusses the messages that are used to open and close 
                  a BASE flow and to perform transactions via such flows. 
                  Since the following fields of the message header are common for all 
                  these messages, they are described only in this introduction: 
                   
                  - The source address (license key and network number) always  
                    reflects the address of the sending system 
                  - The destination address (license key and network number) always 
                    references the system the message is sent to. 
                  - A final flag of only "1" indicates that the corresponding message 
                    will always fit into a single message part. This is usually true  
                    for messages without message elements. 
                   
                  This section lists the messages from an application's point of view, 
                  it may of course happen that the BASE protocol object alters this 
                  flag to indicate an error state within the protocol layer. 
                  The flow-level messages are divided into five categories.: 
                   
                  1.)  Flow-management messages 
                       The OPEN* and CLOSE messages are used to open and close the  
                       BASE flow. 
                  2.)  Registration of BA capabilities 
                       The REGISTER* messages are needed to supply the BE with the  
                       BA's registration information, thus enabling the BE to properly  
                       configure and interpret the BA. 
                  3.)  Configuration of source systems 
                       ACCOUNT* messages serve the purpose of configuring the source  
                       systems that are connected to the BAs. 
                  4.)  Configuration of billing agents 
                       By using POLICY* messages BAs are configured by the BE. 
                  5.)  Transmission of load information 
                       Load information transmission is controlled by LIFSTART* and 
                       LIFSTOP* messages, whereas the actual transfer of load 
                       information is done using LIFDATA messages. 
                        
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  30 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Please note that except for OPENREQ, OPENRES, REGISTERRES, and those 
                  messages without any message elements, all messages use the same 
                  message element layout. 
                   
               7.7.1. OPENREQ message 
                   
                  The OPENREQ message is sent from either a BE or a BA to request the 
                  opening or the re-opening of a BASE flow. 
                   
               7.7.1.1. Message Field Values: 
                   
                  Msg type                     OPENREQ 
                  Final Flag                   1 
                  Msg state                    0 
                  Transaction ID               0 
                  Msg element count            1 
                  Msg element container length 5 
                  Msg element container        Message element 
                   
               7.7.1.2. Message Element Declaration 
                   
                  { 
                       WORD    PeerTypeID; 
                       WORD    PeerVersion; 
                       BYTE    OpenMode 
                  } 
                   
                  For a list of "PeerTypeID" values refer to chapter 5.3 "Peer Types". 
                  "PeerVersion" is an application-defined value reflecting its program 
                  version. 
                  The "OpenMode" field is either set to "0" or to "1", where "0" 
                  indicates a "regular open" request with full synchronization of the 
                  peers, and "1" indicates a "reopen" request with minimal processing. 
                   
               7.7.1.3. Comments 
                   
                  This message is generated inside of the BASE protocol object in 
                  response to an according API call. 
                   
               7.7.2. OPENRES Message 
                   
                  The OPENRES message is sent from either the BE or the BA in reply to 
                  the OPENREQ message to acknowledge the opening of the flow. 
                   
               7.7.2.1. Message Field Values: 
                   
                   Msg type                OPENRES 
                   Final Flag              0 or 1 
                   Msg state               0, 1, 15 
                   Transaction ID          0 
                   Msg element count       1 
                   Msg element container   5 
                   length 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  31 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   Msg element container   Message element 
                   
               7.7.2.2. Message Element Declaration 
                  { 
                       WORD    PeerTypeID; 
                       WORD    PeerVersion; 
                       BYTE    OpenMode 
                  } 
                  For a list of "PeerTypeID" values refer to chapter 5.3 "Peer Types". 
                  "PeerVersion" is an application-defined value reflecting its program 
                  version. 
                   
                  The "OpenMode" field is either set to "0" or to "1", where "0" 
                  indicates a "regular open" request with full synchronization of the 
                  peers and "1" indicates a "reopen" request with minimal processing. 
                   
               7.7.2.3. Comments 
                   
                  By setting the "OpenMode" to "0", the responding peer may reject the 
                  re-opening of the flow. It is not permitted to change a "regular 
                  open" request into a "reopen" request. 
                   
                  This message is automatically generated inside of the BASE protocol 
                  object in response to an OPENREQ message. However, the "OpenMode" 
                  value is determined by the application. 
                   
               7.7.3. CLOSE Message 
                   
                  The CLOSE message is sent from either peer to close the BASE flow. 
                   
               7.7.3.1. Message Field Values: 
                   
                   Msg type                CLOSE 
                   Final Flag              0 or 1 
                   Msg state               0, 14, 15 
                   Transaction ID          0 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.3.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.3.3. Comments 
                   
                  This message is generated inside of the BASE protocol object in 
                  response to an according API call. 
                   
               7.7.4. REGISTERREQ Message 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  32 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The BE sends a REGISTERREQ message to the BA to indicate that type 
                  and functionality of the BA are unknown and therefore registration 
                  information is required. 
                   
               7.7.4.1. Message Field Values: 
                   
                   Msg type                REGISTERREQ 
                   Final Flag              1 
                   Msg state               0 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.4.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.4.3. Comments 
                   
                  No comments 
                   
               7.7.5. REGISTERRES Message 
                   
                  REGISTERRES messages are sent from a BA to the BE in reply to the 
                  REGISTERREQ message. They contain BA registration information, 
                  needed by the BE for the configuration and interpretation of the BA. 
                   
               7.7.5.1. Message Field Values: 
                   
                   Msg type                REGISTERRES 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.5.2. Message Element Declaration 
                   
                  { 
                       BYTE    MessageType; 
                       // message type for which registration is to be performed 
                       WORD    ServiceID; 
                       // service ID announced for the first time at this point by BA 
                       STRING  ServiceName; 
                       // service for which registration is to be performed 
                       WORD    nRegisterTupels; 
                       // number of registry tuples 
                       tRegisterTupel  RegisterTupel[ ]; 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  33 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       // 0-65535 registry tuples 
                  } 
                   
                  tRegisterTupel { 
                       BYTE    ParameterTupelTypeID; 
                       // type of parameter 
                       WORD    ParameterID; 
                       // parameter ID stated by the BA at this point 
                       // for the first time 
                       STRING  ParameterName; 
                       // name of parameter 
                       BYTE    ParameterDataTypeID; 
                       // type of the value range of parameter 
                       STRING  ParameterDomain; 
                       // valid value range of parameter 
                  } 
                   
                  "MessageType" is one of POLICYADDREQ, POLICYDELETEREQ, 
                  POLICYCHANGEREQ, POLICYSTARTREQ, POLICYSTOPREQ, ACCOUNTADDREQ, 
                  ACCOUNTDELREQ, ACCOUNTSUSPENDREQ, ACCOUNTUNSUSPENDREQ, 
                  ACCOUNTCHANGEREQ, ACCOUNTREQ or ACCOUNTADDRES. 
                   
                  "MessageType" and "ServiceName" of the message element determine 
                  which BA service has to be registered for which command. This 
                  registration process informs the BE about how to build POLICY* and 
                  ACCOUNT* messages for this BA. 
                   
                  The service to which the operation refers is indicated in the 
                  "ServiceName" field. The corresponding service ID is at this point 
                  stated for the first time by the BA. Solely this ID is used with 
                  future POLICY* and ACCOUNT* messages to identify the requested 
                  service. 
                   
                  The number of registry tuples (RegisterTupel) is stored in 
                  "nRegisterTupels". 
                   
               7.7.5.3. Comments 
                   
                  The following is a list of parameter types that have been defined 
                  for the configuration of a service. 
                   
                  Type Value   Description 
                  ------------------------------------------------------------------- 
                  C    0x01    Configurable, parameter is used for the configuration  
                               of the BA 
                  K    0x02    Key, parameter is key member of the service 
                  I    0x04    Informational, parameter carries additional  
                               information, e. g. LIF messages 
                  T    0x08    LoadType, parameter defines a new load type 
                  L    0x10    Load, parameter defines load data 
                  Z    0x20    Zone, parameter is member of zone info 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  34 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Depending on the MessageType and the service type, different 
                  parameters have to be used. The value of ParameterTupelTypeID is a 
                  result of multiple bit-wise ORed parameters. Each parameter type is 
                  described below. 
                   
                  A parameter that is used for the configuration of a BA is flagged as 
                  "C" (configurable), thus making system policies possible. System 
                  policies influence the BA's behavior (e. g. aggregation). This 
                  parameter does not reflect the configuration of the source system 
                  which is, according to the definition, done exclusively through 
                  ACCOUNT* messages. 
                   
                  A parameter is flagged as "K" (key), if it is part of the service's 
                  primary key. "K"- flagged parameters within the registered 
                  MessageType-ServiceName combination are mandatory when used by the 
                  BE, so that the BA is able to execute the required command. 
                  Parameters flagged as "I" (informational), are not part of the 
                  primary key. They are used for the configuration of parameters on a 
                  source system not necessary for its operation, or for the transfer 
                  of billing-irrelevant information to the BE. 
                   
                  The load type of the load data, flagged as "L" (load), is registered 
                  to the BE using "T"-flagged parameters, unless it is already defined 
                  as a standard load type. 
                  "L"-flagged parameters define load data used by the BE for the 
                  billing of the subscribed services. 
                   
                  "Z"-flagged parameters are used by the BE for the identification of 
                  tariff zones. 
                   
                  The "ParameterID" for each combination of "MessageType" and 
                  "ServiceName" to be registered is set by the BA. It is sequentially 
                  numbered, starting with the value "1". 
                   
                  "ParameterName" is a string, containing the name of the parameter. 
                   
                  "ParameterDataTypeID" is a BASE "DataTypeID" (refer to chapter 5.1 
                  "Data Types") and indicates the type of the parameter's value, when 
                  the parameter is used for future POLICY*, ACCOUNT* or LIFDATA 
                  messages. The exception being "T"-flagged parameters which define 
                  new load types. In this case  "ParameterDataTypeID" has to be set to 
                  "LOADTYPE" (0x06). 
                   
                  "ParameterDomain" defines the range of values that are allowed for 
                  the registered parameter. The value range is defined as a string 
                  containing a regular BASE expression (refer to 5.6 "Regular BASE 
                  Expressions"); the exception being "T"-flagged parameters in which 
                  case the "ParameterDomain" field contains the load type ID of the 
                  newly registered load type as a hexadecimal value ("T"-flag, e. g. 
                  "\w0A02"). When the parameter is used afterwards, its value must be 
                  within the range defined through "ParameterDomain". The sender tries 
                  to validate the value to the utmost of its ability. 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  35 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The use of "L"-flagged parameters depends on the BASE message type. 
                  During the registration process the possible load types are defined 
                  within a string as constants of type WORD, e. g. "\w0005\w1111". The 
                  BE subscribes to load data in the required measurement unit based on 
                  these values using the POLICYADDREQ message. When the load data is 
                  actually sent in a LIFDATA message, the type of the "L"-flagged 
                  parameter corresponds to the one defined through "LoadType". For a 
                  complete list of predefined load types refer to chapter 5.2 "Load 
                  Types". Load types, which are added during the registration process, 
                  are defined through the "T"-flagged parameter. 
                   
                  The registration of specific ACCOUNTREQ messages enables the BE to 
                  request the value range from the source system via the BA. This 
                  requires the preceding registration of the corresponding services 
                  and parameters, e. g. by means of the ACCOUNTADDREQ message. 
                  "MessageType", "ServiceID" and "ServiceName" of the ACCOUNTREQ 
                  message become superfluous, since the parameter is identified 
                  through the previously registered "ParameterID". The other 
                  attributes are set as follows: 
                   
                  ParameterTupelTypeID is set to "C" 
                  ParameterName        is either "used" or "free" 
                  ParameterDataTypeID  ID of this query, that is registered for use  
                                       via ACCOUNT messages 
                  ParameterDomain      filter to reduce the number of values that can  
                                       be queried 
                   
               7.7.6. ACCOUNTADDREQ Message 
                   
                  By means of an ACCOUNTADDREQ message, the BE instructs a BA to 
                  configure a service for a new user on the source system. 
                   
               7.7.6.1. Message Field Values: 
                   
                   Msg type                ACCOUNTADDREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.6.2. Message Element Declaration 
                  { 
                       WORD    ServiceID; 
                       // service ID of the requested service 
                       DWORD   TimeStamp; 
                       // based on January 1, 2000 
                       WORD    nParameters; 
                       // number of parameter tuples 
                       tParameterTupel Parameter[]; 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  36 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       // 0-65535 Parameter 
                  } 
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.6.3. Comments 
                   
                  ACCOUNTADDREQ messages only transmit parameters of types K/I/Z. Any 
                  parameter flagged differently will not be transmitted. 
                  K-, I- and Z-parameters must not contain regular expressions, they 
                  must be declared atomic. 
                   
               7.7.7. ACCOUNTADDRES Message 
                   
                  The ACCOUNTADDRES message is sent from the BA to the BE in reply to 
                  an ACCOUNTADDREQ message to acknowledge the successful completion of 
                  the requested operation. Additional response information may be 
                  passed via parameters. 
                   
               7.7.7.1. Message Field Values: 
                   
                   Msg type                ACCOUNTADDRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.7.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID; 
                       // service ID of the requested service 
                       DWORD   TimeStamp; 
                       // based on January 1, 2000 
                       WORD    nParameters; 
                       // number of parameter tuples 
                       tParameterTupel Parameter[]; 
                       // 0-65535 Parameter 
                  } 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  37 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.7.3. Comments 
                   
                  ACCOUNTADDRES messages only transmit parameters of types K/I/Z. Any 
                  parameter flagged differently will not be transmitted. 
                  K-, I- and Z-parameters must not contain regular expressions, they 
                  must be declared atomic. 
                   
               7.7.8. ACCOUNTDELREQ Message 
                   
                  By means of an ACCOUNTDELREQ message, the BE instructs the BA to 
                  remove a service for an existing user from the source system. The 
                  user is referenced by the complete key that was used within the 
                  corresponding ACCOUNTADDREQ message. 
                   
               7.7.8.1. Message Field Values: 
                   
                   Msg type                ACCOUNTDELREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.8.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID; 
                       // service ID of the requested service 
                       DWORD   TimeStamp; 
                       // based on January 1, 2000 
                       WORD    nParameters; 
                       // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  38 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.8.3. Comments 
                   
                  ACCOUNTDELREQ messages only transmit parameters of type K. Any 
                  parameter flagged differently will not be transmitted. 
                   
               7.7.9. ACCOUNTDELRES Message 
                   
                  The ACCOUNTDELRES message is sent from the BA to the BE in reply to 
                  an ACCOUNTDELREQ message to acknowledge the successful completion of 
                  the requested operation. 
                   
               7.7.9.1. Message Field Values: 
                   
                   Msg type                ACCOUNTDELRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.9.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.9.3. Comments 
                   
                  No comments 
                   
               7.7.10. ACCOUNTCHANGEREQ Message 
                   
                  By means of an ACCOUNTCHANGEREQ message, the BE instructs the BA to 
                  change the configuration of an existing service for a user on the 
                  source system. The user is referenced by the complete key that was 
                  used within the corresponding ACCOUNTADDREQ message. 
                   
               7.7.10.1. Message Field Values: 
                   
                   Msg type                ACCOUNTCHANGEREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  39 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.10.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID; 
                       // service ID of the requested service 
                       DWORD   TimeStamp; 
                       // based on January 1, 2000 
                       WORD    nParameters; 
                       // number of parameter tuples 
                       tParameterTupel Parameter[]; 
                       // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.10.3. Comments 
                   
                  ACCOUNTCHANGEREQ messages only transmit parameters of types K/I/Z. 
                  Any parameter flagged differently will not be transmitted. 
                  I- and Z-parameters must not contain regular expressions, they must 
                  be declared atomic, whereas K-parameter may contain regular 
                  expressions. 
                   
               7.7.11. ACCOUNTCHANGERES Message 
                   
                  The ACCOUNTCHANGERES message is sent from the BA to the BE in reply 
                  to an ACCOUNTCHANGEREQ message to acknowledge the successful 
                  completion of the requested operation. 
                   
               7.7.11.1. Message Field Values: 
                   
                   Msg type                ACCOUNTCHANGERES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  40 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.11.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.11.3. Comments 
                   
                  No comments 
                   
               7.7.12. ACCOUNTSUSPENDREQ Message 
                   
                  By means of an ACCOUNTSUSPENDREQ message, the BE instructs the BA to 
                  temporarily lock a service for a user on the source system. The user 
                  is referenced by the complete key that was used within the 
                  corresponding ACCOUNTADDREQ message. 
                   
               7.7.12.1. Message Field Values: 
                   
                   Msg type                ACCOUNTSUSPENDREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.12.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  41 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
               7.7.12.3. Comments 
                   
                  ACCOUNTSUSPENDREQ messages only transmit parameters of type K. Any 
                  parameter flagged differently will not be transmitted. 
                   
               7.7.13. ACCOUNTSUSPENDRES Message 
                   
                  The ACCOUNTSUSPENDRES message is sent from the BA to the BE in reply 
                  to an ACCOUNTSUSPENDREQ message to acknowledge the successful 
                  completion of the requested operation. 
                   
               7.7.13.1. Message Field Values: 
                   
                   Msg type                ACCOUNTSUSPENDRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.13.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.13.3. Comments 
                   
                  No comments 
                   
               7.7.14. ACCOUNTUNSUSPENDREQ Message 
                   
                  By means of an ACCOUNTUNSUSPENDREQ message, the BE instructs the BA 
                  to unlock a service previously locked for a user on the source 
                  system. The user is referenced by the complete key that was used 
                  within the corresponding ACCOUNTADDREQ message. 
                   
               7.7.14.1. Message Field Values: 
                   
                   Msg type                ACCOUNTUNSUSPENDREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.14.2. Message Element Declaration 
                   
                  { 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  42 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.14.3. Comments 
                   
                  ACCOUNTUNSUSPENDREQ messages only transmit parameters of type K. Any 
                  parameter flagged differently will not be transmitted. 
                   
               7.7.15. ACCOUNTUNSUSPENDRES Message 
                   
                  The ACCOUNTUNSUSPENDRES message is sent from the BA to the BE in 
                  reply to an ACCOUNTUNSUSPENDREQ message to acknowledge the 
                  successful completion of the requested operation. 
                   
               7.7.15.1. Message Field Values: 
                   
                   Msg type                ACCOUNTUNSUSPENDRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.15.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.15.3. Comments 
                   
                  No comments 
                   
               7.7.16. ACCOUNTREQ Message 
                   
                  ACCOUNTREQ messages are sent from the BE to the BA to query the 
                  values of a service parameter, either used or free, thus making it 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  43 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  possible to automatically integrate source systems, started prior to 
                  the BE, into the billing system. 
                   
               7.7.16.1. Message Field Values: 
                   
                   Msg type                ACCOUNTREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.16.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.16.3. Comments 
                   
                  By means of ACCOUNTREQ messages, the BA registers with the BE the 
                  possibility to query the source system for value ranges for the 
                  required services or parameters. 
                   
                  The ParameterID of a parameter tuple corresponds to the registered 
                  ID of a possible query of the value range of a service-parameter 
                  combination. The parameter is a filter string. 
                   
               7.7.17. ACCOUNTRES Message 
                   
                  The ACCOUNTRES message is sent from the BA to the BE in reply to an 
                  ACCOUNTREQ message to provide the requested information. 
                   
               7.7.17.1. Message Field Values: 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  44 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
                   Msg type                ACCOUNTRES 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.17.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.17.3. Comments 
                   
                  The parameter ID of a parameter tuple corresponds to the one used 
                  within the ACCOUNTREQ message. The parameter is a value within the 
                  allowed value range. 
                   
               7.7.18. POLICYADDREQ Message 
                   
                  POLICYADDREQ messages are sent from the BE to the BA to control the 
                  BAs' load information flow. They are used to subscribe to load 
                  information provided by the BA. 
                   
               7.7.18.1. Message Field Values: 
                   
                   Msg type                POLICYADDREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  45 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.18.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.18.3. Comments 
                   
                  POLICYADDREQ messages only transmit parameters of types C/K/L/I/Z. 
                  Any parameter flagged differently will not be transmitted. 
                  C-, L-, I- and Z-parameters must not contain regular expressions, 
                  they must be declared atomic, whereas K-parameters may contain 
                  regular expressions. 
                   
               7.7.19. POLICYADDRES Message 
                   
                  The POLICYADDRES message is sent from the BA to the BE in reply to a 
                  POLICYADDREQ message to acknowledge the successful completion of the 
                  requested operation. 
                   
               7.7.19.1. Message Field Values: 
                   
                   Msg type                POLICYADDRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.19.2. Message Element Declaration 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  46 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  N/a 
                   
               7.7.19.3. Comments 
                   
                  No comments 
                   
               7.7.20. POLICYDELETEREQ Message 
                   
                  POLICYDELETEREQ messages are sent from the BE to the BA to control 
                  the BA's load information flow. They are used to cancel the 
                  subscription to load information that has previously been added 
                  through POLICYADDREQ. Keys have to be specified exactly as with the 
                  corresponding POLICYADDREQ message. 
                   
               7.7.20.1. Message Field Values: 
                   
                   Msg type                POLICYDELETEREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.20.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.20.3. Comments 
                   
                  POLICYDELETEREQ messages only transmit parameters of type K. Any 
                  parameter flagged differently will not be transmitted. 
                  K-parameters may contain regular expressions. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  47 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
               7.7.21. POLICYDELETERES Message 
                   
                  The POLICYDELETERES message is sent from the BA to the BE in reply 
                  to a POLICYDELETEREQ message to acknowledge the successful 
                  completion of the requested operation. 
                   
               7.7.21.1. Message Field Values: 
                   
                   Msg type                POLICYDELETERES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.21.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.21.3. Comments 
                   
                  No comments 
                   
               7.7.22. POLICYCHANGEREQ Message 
                   
                  POLICYCHANGEREQ messages are sent from the BE to the BA to change 
                  the parameters of a subscription to load information that has 
                  previously been added through POLICYADDREQ. Keys have to be 
                  specified exactly as with the corresponding POLICYADDREQ message. 
                  This is for example useful to restrict a currently active load 
                  information flow using filters without the need to delete it 
                  completely and add a new one afterwards. 
                  K-parameters cannot be changed. 
                   
               7.7.22.1. Message Field Values: 
                   
                   Msg type                POLICYCHANGEREQ 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.22.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  48 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.22.3. Comments 
                   
                  POLICYCHANGEREQ messages only transmit parameters of types C/K/L. 
                  Any parameter flagged differently will not be transmitted. 
                  C- and L-parameters must not contain regular expressions, they must 
                  be declared atomic, whereas K-parameters may contain regular 
                  expressions. 
                   
               7.7.23. POLICYCHANGERES Message 
                   
                  The POLICYCHANGERES message is sent from the BA to the BE in reply 
                  to a POLICYCHANGEREQ message to acknowledge the successful 
                  completion of the requested operation. 
                   
               7.7.23.1. Message Field Values: 
                   
                   Msg type                POLICYCHANGERES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.23.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.23.3. Comments 
                   
                  No comments 
                   
               7.7.24. POLICYSTARTREQ Message 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  49 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The POLICYSTARTREQ message is sent from the BE to the BA to activate 
                  all policies that have previously been added to this BA. It causes 
                  the BA to start collecting information accordingly. There is no data 
                  transfer from the BA to the BE at this point, which would require a 
                  LIFSTARTREQ message. 
                   
               7.7.24.1. Message Field Values: 
                   
                   Msg type                POLICYSTARTREQ 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.24.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.24.3. Comments 
                   
                  No comments 
                   
               7.7.25. POLICYSTARTRES Message 
                   
                  The POLICYSTARTRES message is sent from the BA to the BE in reply to 
                  a POLICYSTARTREQ message to acknowledge the successful activation of 
                  all policies. 
                   
               7.7.25.1. Message Field Values: 
                   
                   Msg type                POLICYSTARTRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.25.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.25.3. Comments 
                   
                  No comments 
                   
               7.7.26. POLICYSTOPREQ Message 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  50 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The POLICYSTOPREQ message is sent from the BE to the BA to 
                  deactivate all policies on this BA and thus stop the data 
                  collection. The policies will not be deleted through this command 
                  and can be re-activated at any time using POLICYSTARTREQ. 
                   
               7.7.26.1. Message Field Values: 
                   
                   Msg type                POLICYSTOPREQ 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.26.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.26.3. Comments 
                   
                  No comments 
                   
               7.7.27. POLICYSTOPRES Message 
                   
                  The POLICYSTOPRES message is sent from the BA to the BE in reply to 
                  a POLICYSTOPREQ message to acknowledge the successful deactivation 
                  of all policies. 
                   
               7.7.27.1. Message Field Values: 
                   
                   Msg type                POLICYSTOPRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.27.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.27.3. Comments 
                   
                  No comments 
                   
               7.7.28. POLICYRESETREQ Message 
                   


                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  51 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  The POLICYRESETREQ message is sent from the BE to the BA to reset 
                  all subscriptions and thus restore the initial state of the BA, 
                  prior to the first POLICYADDREQ message. 
                   
               7.7.28.1. Message Field Values: 
                   
                   Msg type                POLICYRESETREQ 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.28.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.28.3. Comments 
                   
                  No comments 
                   
               7.7.29. POLICYRESETRES Message 
                   
                  The POLICYRESETRES message is sent from the BA to the BE in reply to 
                  a POLICYRESETREQ message to acknowledge that all subscriptions have 
                  successfully been reset. 
                   
               7.7.29.1. Message Field Values: 
                   
                   Msg type                POLICYRESETRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.29.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.29.3. Comments 
                   
                  No comments 
                   
               7.7.30. LIFSTARTREQ Message 
                   
                  After having subscribed to the load information provided by a BA 
                  using POLICY* messages, the BE is now able to control the load 
                  information flow from the BA to itself using LIFSTARTREQ and 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  52 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  LIFSTOPREQ messages. By means of a LIFSTARTREQ message, the BE 
                  instructs the BA to start sending load data to the BE via the BASE 
                  flow. 
                   
               7.7.30.1. Message Field Values: 
                   
                   Msg type                LIFSTARTREQ 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.30.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.30.3. Comments 
                   
                  The LIFSTARTREQ message affects all subscribed load information at 
                  the same time. 
                   
               7.7.31. LIFSTARTRES Message 
                   
                  The LIFSTARTRES message is sent from the BA to the BE in reply to a 
                  LIFSTARTREQ message to acknowledge that it has received the request 
                  to start sending load information to the BE. 
                   
               7.7.31.1. Message Field Values: 
                   
                   Msg type                LIFSTARTRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.31.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.31.3. Comments 
                   
                  No comments 
                   
               7.7.32. LIFSTOPREQ Message 
                   


                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  53 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  By means of a LIFSTOPREQ message, the BE instructs the BA to stop 
                  sending load data to the BE via the BASE flow. The BA does not stop 
                  gathering information from the source systems. 
                   
               7.7.32.1. Message Field Values: 
                   
                   Msg type                LIFSTOPREQ 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.32.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.32.3. Comments 
                   
                  The LIFSTOPREQ message affects all load information at the same time 
                  which means that the load data flow from the BA to the BE is 
                  stopped. 
                   
               7.7.33. LIFSTOPRES Message 
                   
                  The LIFSTOPRES message is sent from the BA to the BE in reply to a 
                  LIFSTOPREQ message to acknowledge that it has received the request 
                  to stop sending load information to the BE. 
                   
               7.7.33.1. Message Field Values: 
                   
                   Msg type                LIFSTOPRES 
                   Final Flag              1 
                   Msg state               Application-defined 
                   Transaction ID          1-65535 
                   Msg element count       0 
                   Msg element container   0 
                   length 
                   Msg element container   - 
                   
               7.7.33.2. Message Element Declaration 
                   
                  N/a 
                   
               7.7.33.3. Comments 
                   
                  No comments 
                   
               7.7.34. LIFDATA Message 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  54 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  LIFDATA messages are sent from the BA to the BE upon request. They 
                  contain subscribed load information of the source systems that has 
                  been gathered by the BA. 
                   
               7.7.34.1. Message Field Values: 
                   
                   Msg type                LIFDATA 
                   Final Flag              0 or 1 
                   Msg state               Application-defined 
                                           if final flag = "1" 
                   Transaction ID          1-65535 
                   Msg element count       1-65535 
                   Msg element container   variable 
                   length 
                   Msg element container   Message elements 
                   
               7.7.34.2. Message Element Declaration 
                   
                  { 
                       WORD    ServiceID;      // service ID of the requested service 
                       DWORD   TimeStamp;      // based on January 1, 2000 
                       WORD    nParameters;    // number of parameter tuples 
                       tParameterTupel Parameter[];    // 0-65535 Parameter 
                  } 
                   
                  tParameterTupel { 
                       WORD            ParameterID; 
                       BASE-Type       Parameter; 
                  } 
                   
                  "ServiceID" and "ParameterID" have been made known through the 
                  registration process. The parameter has a defined type for the range 
                  of values according to the parameter ID and thus an implicitly 
                  defined length. The number of bytes that are transmitted for each 
                  parameter is therefore not explicitly specified; the exception being 
                  parameters of type "STRING" which carry explicit length information 
                  in their first two bytes. 
                   
               7.7.34.3. Comments 
                   
                  LIFDATA messages only transmit parameters of types K/I/L/Z. Any 
                  parameter flagged differently will not be transmitted. 
                  K-, I-, L- and Z-parameters are always transmitted atomic (without 
                  regular expressions). L-parameter are transmitted according to their 
                  registered load type. 
                   
               8. BASE Flow Example 
                   
                  Typically, products adhering to BASE version 1 are deployed in a 
                  scenario similar the following: 
                  A central billing engine is coded to function as a low-entry mex. No 
                  other BEs are present, but a number of peer nodes with billing 

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  55 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  agents connect to the BE. This example covers only a single BA for 
                  the sake of simplicity. 
                   
                  The billing engine requires no knowledge of the BA(s), whereas the 
                  BA(s) need to know both the IP address (or DNS name) of the low-
                  entry mex and the network number and license key of the BE to be 
                  able to connect. (If the BA only had the IP address of the mex, the 
                  BE would need to know the license key of the BA in order to open the 
                  flow as soon as the BA peer node establishes the link to the mex. 
                  This would have to be done by polling since the low-entry mex design 
                  does not provide for a notification of the "link up" event. The BE 
                  does explicitly need to know the network number since it runs the 
                  single mex of this BASE network, and so fixes the network number.) 
                  In this example the BE starts the low-entry mex with a network 
                  number of "1" and has a license key of "0x00010000". The BA has a 
                  license key of "0x00020000". The IP addresses are not explicitly 
                  mentioned, especially since none of the underlying TCP details are 
                  given. 
                   
                  To be able to offer as much details as required, the example layout 
                  distinguishes between the BE and the low-entry mex as well as 
                  between the BASE application (BE or BA) and the BASE protocol object 
                  (bpo) of the corresponding peer. Usually, these are integrated in 
                  one piece of software per peer. 
                   
               8.1. Communication table 
                   
                  +------------+------------+-------------+------------+------------+ 
                  |     BE     |    Bpo     |Low-entry-mex|    Bpo     |     BA     | 
                  +------------+------------+-------------+------------+------------+ 
                  |            |            |             |            |            | 
                  |            |            |             |         <------- 1      | 
                  |            |            |             |      2     |            | 
                  |            |            |             |            |            | 
                  |            |            |           <-------       |            | 
                  |            |            |           TCP open fail  |            | 
                  |            |            |             |            |            | 
                  |            |            |           <-------       |            | 
                  |            |            |           TCP open fail  |            | 
                  |            |            |             |            |            | 
                  |      3 ----------------------> 4      |            |            | 
                  |            |            |             |            |            | 
                  |            |            |           <-------       |            | 
                  |            |            |           TCP open       |            | 
                  |            |            |           success        |            | 
                  |            |            |             |            |            | 
                  |      5     |            |      6      |            |            | 
                  |            |            |             |            |            | 
                  |            |            |        <--------- 7      |            | 
                  |            |            |        OPENLNKREQ        |            | 
                  |            |            |      8      |            |            | 
                  |            |            |             |            |            | 
                  |            |            |      9 ---------->       |            | 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  56 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  |            |            |        OPENLNKRES        |            | 
                  |            |            |             |      10    |            | 
                  |            |            |             |            |     11     | 
                  |            |            |             |            |            | 
                  |            |            |             |        <--------        | 
                  |            |            |             |        API Open()       | 
                  |            |            |             |            |            | 
                  |            |        <------------------------12    |            | 
                  |            |        OPENREQ           |            |            | 
                  |            |     13     |             |            |            | 
                  |            |            |             |            |            | 
                  |       <----------       |             |            |            | 
                  |       API call          |             |            |            | 
                  |            |            |             |            |            | 
                  |     14     |            |             |            |            | 
                  |            |            |             |            |            | 
                  |       ---------->       |             |            |            | 
                  |       accept via        |             |            |            | 
                  |       API call          |             |            |            | 
                  |            |      15    |             |            |            | 
                  |            |            |             |            |            | 
                  |            |      16 ----------------------->      |            | 
                  |            |      OPENRES             |      17    |            | 
                  |            |            |             |        -------->        | 
                  |            |            |             |        API Open()       | 
                  |            |            |             |        returns          | 
                  |            |            |             |            |            | 
                  |     18     |            |             |            |            | 
                  |     19------------------------------------------------->        | 
                  |       REGISTERREQ       |             |            |     20     | 
                  |            |            |             |            |            | 
                  |       <------------------------------------------------- 21     | 
                  |       REGISTERRES       |             |            |            | 
                  |            |            |             |            |            | 
                  |  After the initial processing has been done, the flow can be    | 
                  |  used for the transfer of load- or account information          | 
                  |                               ...                               | 
                  |  In this example, the flow is closed on part of the BE          | 
                  |            |            |             |            |            | 
                  |     22     |            |             |            |            | 
                  |       ---------->       |             |            |            | 
                  |       API close()       |             |            |            | 
                  |            |     23 ------------------------>      |            | 
                  |            |        CLOSE             |      ----------->       | 
                  |            |            |             |      API close          | 
                  |            |            |             |      notification       | 
                  |            |            |             |            |            | 
                  +------------+------------+-------------+------------+------------+ 
                   
                   
               8.2. Remarks to the communication table 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  57 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  1) Upon startup, the BA initializes the bpo with an indicator to run 
                  as a peer node, the TCP/IP address of the mex, the BA's license key, 
                  its type and version. 
                   
                  2) The bpo repeatedly tries to connect to the mex. 
                   
                  3) Upon startup, the BE initializes the low-entry mex by 
                  constructing the bpo with an indicator to run as a low-entry mex, 
                  the network number to use, the BE's license key, its type and 
                  version. 
                   
                  4) The Low-entry mex initializes the TCP socket. 
                   
                  5) The BE then waits for incoming BASE flows. 
                   
                  6) The Low-entry mex opens the TCP session and waits for an "open 
                  link" request. 
                   
                  7) The BA bpo sent an OPENLNKREQ message to the mex: 
                   
                  Destination address (license key)            0x00000000 
                  Destination address (network number)         0x00000000 
                  Source address (license key)                 0x00020000 
                  Source address (network number)              0x00000000 
                  Msg type                                     0x26 
                  F-flag                                       1 
                  Msg state                                    0x0 
                  Transaction ID                               0x0000 
                  Msg element count                            0x0000 
                  Msg element container length                 0x00000000 
                   
                  Byte stream of message(all in hex): 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|00|00|00|00|00|00|00|00|02|00|00|00|00|00| 
                  |00|26|80|00|00|00|00|00|00|00|00|  |  |  |  |  | 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  8) The Low-entry mex generates an entry in its switching table to 
                  link the peer's license key to the corresponding TCP session, then 
                  sends an "open link" response. 
                   
                  9) The mex sent an OPENLNKRES message to the BA bpo: 
                   
                  Destination address (license key)            0x00020000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00000000 
                  Source address (network number)              0x00000001 
                  Msg type                                     0x27 
                  F-flag                                       1 
                  Msg state                                    0x0 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  58 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Transaction ID                               0x0000 
                  Msg element count                            0x0000 
                  Msg element container length                 0x00000000 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|02|00|00|00|00|00|01|00|00|00|00|00|00|00| 
                  |01|27|80|00|00|00|00|00|00|00|00|  |  |  |  |  | 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  10) Now the link is open, and the bpo accepts calls to its Open() 
                  method without immediately returning an error 
                   
                  11) The BA has tried to Open() the flow since bpo has been created. 
                   
                  12) The BA bpo sent an OPENREQ message to the BE bpo: 
                   
                  Destination address (license key)            0x00010000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00020000 
                  Source address (network number)              0x00000001 
                  Msg type                                     0x01 
                  F-flag                                       1 
                  Msg state                                    0x0 
                  Transaction ID                               0x0000 
                  Msg element count                            0x0001 
                  Msg element container length                 0x00000008 
                   
                  Message element: 
                  { 
                       0x0001;         // BA type is ASCII 
                       0x1234;         // BA version 
                       0x00            // OpenMode is "regular" 
                  } 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|01|00|00|00|00|00|01|00|02|00|00|00|00|00| 
                  |01|01|80|00|00|00|01|00|00|00|08|00|01|12|34|00| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  13) The bpo asks the BE to confirm the open request. 
                   
                  14) The BE checks the mode of the open request (usually there should 
                  be no reason to deny a "regular" open). 
                   
                  15) The bpo sends an appropriate response. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  59 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                   
                  16) The BE bpo sent an OPENRES message to the BA bpo: 
                   
                  Destination address (license key)            0x00020000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00010000 
                  Source address (network number)              0x00000001 
                  Msg type                             0x02 
                  F-flag                               1 
                  Msg state                            0x0 
                  Transaction ID                               0x0000 
                  Msg element count                            0x0001 
                  Msg element container length                 0x00000008 
                   
                  Message element: 
                  { 
                       0x0000;         // BE type is BE 
                       0x5678;         // BE version 
                       0x00            // OpenMode is "regular" 
                  } 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|02|00|00|00|00|00|01|00|01|00|00|00|00|00| 
                  |01|02|80|00|00|00|01|00|00|00|08|00|00|56|78|00| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  17) The flow is open now 
                   
                  18) Assuming, this was the first time the BA type connected to the 
                  BE, its capabilities has to be determined. 
                   
                  19) The BE sent a REGISTERREQ message to the BA 
                   
                  Destination address (license key)            0x00020000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00010000 
                  Source address (network number)              0x00000001 
                  Msg type                                     0x04 
                  F-flag                                       1 
                  Msg state                                    0x0 
                  Transaction ID                               0x8000 
                  Msg element count                            0x0000 
                  Msg element container length                 0x00000000 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  60 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  |01|00|02|00|00|00|00|00|01|00|01|00|00|00|00|00| 
                  |01|04|80|80|00|00|00|00|00|00|00|  |  |  |  |  | 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  20) The BA lists all its capabilities. 
                   
                  21) The BA sent a REGISTERRES to the BE 
                   
                  Destination address (license key)            0x00010000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00020000 
                  Source address (network number)              0x00000001 
                  Msg type                                     0x05 
                  F-flag                                       1 
                  Msg state                                    0x0 
                  Transaction ID                               0x8000 
                  Msg element count                            0x???? 
                  Msg element container length                 0x???????? 
                   
                  Messages elements: 
                  { 
                       0x??;           // MessageType 
                       0x????;         // ServiceID 
                       "?";            // ServiceName 
                       0x????;         // nRegisterTupels 
                  } 
                   
                  { 
                       0x??;           // ParameterTupelTypeID 
                       0x????;         // ParameterID 
                       "?";            // ParameterName 
                       0x??;           // ParameterDataTypeID 
                       "?";            // ParameterDomain 
                  } 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|01|00|00|00|00|00|01|00|02|00|00|00|00|00| 
                  |01|05|80|80|00|??|??|??|??|??|??|  |  |  |  |  | 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
                  22) The BE instructs the bpo to close the flow. 
                   
                  23) The BE bpo sent a CLOSE message to the BA bpo 
                   
                  Destination address (license key)            0x00020000 
                  Destination address (network number)         0x00000001 
                  Source address (license key)                 0x00010000 
                  Source address (network number)              0x00000001 
                  Msg type                                     0x03 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  61 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  F-flag                                       1 
                  Msg state                                    0x0 
                  Transaction ID                               0x0000 
                  Msg element count                            0x0000 
                  Msg element container length                 0x00000000 
                   
                  Byte stream of message: 
                   
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| A| B| C| D| E| F| 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                  |01|00|02|00|00|00|00|00|01|00|01|00|00|00|00|00| 
                  |01|03|80|00|00|00|00|00|00|00|00|  |  |  |  |  | 
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
                   
               9. BASE Definitions 
                   
                  This section summarizes the various definitions found in this 
                  documentation.  
                   
               9.1. Data Types 
                   
                  The following data types are defined in the BASE protocol: 
                   
                       Data type       DataTypeID      Length in bit 
                       BYTE            0x01            8 
                       WORD            0x02            16 
                       DWORD           0x03            32 
                       DOUBLE          0x04            64 
                       STRING          0x05            variable 
                       LOADTYPE        0x06            0 
                        
                  The data types indicate the type of parameters that are transmitted 
                  according to the BASE protocol. Due to the data type definition, 
                  there is no need to indicate the number of bytes transmitted for a 
                  parameter, with the exception of the data type "STRING". The first 
                  two bytes of a string indicate the string length in octets (most 
                  significant byte first). 
                   
                  The data type "LOADTYPE" is used only to announce new load types. 
                  In a BASE communication all transmitted data is treated as unsigned 
                  integers. Only the BE may interpret signs. 
                   
               9.2. Load Types 
                   
                  Load types indicate the measurement units of load data. It is the 
                  responsibility of the BE to interpret the load types. The BASE 
                  protocol defines a number of load types. Additional load types can 
                  be announced to the BE by the BA. This is done during the BA 
                  registration process, which is described in chapter 3.5.4.5 
                  "REGISTERRES message". 
                   

                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  62 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  To guarantee that load types are unique world-wide, they have to be 
                  announced to the BASE registration office of the IOAG before being 
                  used. The new load type is then given a load type identifier 
                  ("LoadTypeID") that has to be used in the BASE communication. Load 
                  type IDs are of type "WORD". The following is a list of all load 
                  types that have been released by the BASE registration office as of 
                  January 1, 2000. For the latest information, refer to 
                  http://base.ioag.com. 
                   
                  Load type                            LoadTypeID      corresponding 
                                                                       data type 
                  ------------------------------------------------------------------ 
                  total used general                   0x0001          DWORD 
                  delta used general                   0x0002          DWORD 
                  average used general                 0x0003          DWORD 
                  percent of usage                     0x0004          DWORD 
                  total used traffic in octets         0x0005          DWORD 
                  delta used traffic in octets         0x0006          DWORD 
                  total resource usage in octets       0x0007          DWORD 
                  delta resource usage in octets       0x0008          DWORD 
                  average resource usage in octets     0x0009          DWORD 
                  number used per second               0x000A          DWORD 
                  average used bandwidth in 
                  bits per second                      0x000B          DWORD 
                  maximum used bandwidth in  
                  bits per second                      0x000C          DWORD 
                  minimum used bandwidth in  
                  bits per second                      0x000D          DWORD 
                  total used time in seconds           0x000E          DWORD 
                   
               9.3. Peer Types 
                   
                  Peer Type            PeerTypeID      Peer Type       PeerTypeID 
                  --------------------------------------------------------------- 
                  Billing engine       0x0000          Lotus Notes  
                                                       Application  
                                                       Monitor         0x000F 
                  ASCII                0x0001          Time-Management 0x0010 
                  Cisco IP-Accounting  0x0002          OS/390 SMS      0x0011 
                  Cisco Net-Flow       0x0003          VSE PAR         0x0012 
                  Teles CDR            0x0004          DNS             0x0013 
                  Siemens Hicom CDR    0x0005          DHCP            0x0014 
                  Windows  
                  System Monitor       0x0006          Radius          0x0015 
                  Linux System Monitor 0x0007          SNMP            0x0016 
                  AIX System Monitor   0x0008          WINS            0x0017 
                  SunOS System Monitor 0x0009          Microsoft IIS 4 0x0018 
                  HPUX System Monitor  0x000A          Microsoft IIS 5 0x0019 
                  Oracle  
                  Application Monitor  0x000B          Apache          0x001A 
                  Microsoft SQL  
                  Application Monitor  0x000C          Cisco Pix       0x001B 
                  DB2 Application  
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  63 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  Monitor              0x000D          Borderware  
                                                       FireWall 1      0x001C 
                  SAP  
                  Application Monitor  0x000E           
                   
               9.4. Message Types 
                   
                  Message              Type            Message         Type 
                  --------------------------------------------------------- 
                  OPENREQ              0x01            POLICYDELETERES 0x15 
                  OPENRES              0x02            POLICYUPDATEREQ 0x16 
                  CLOSE                0x03            POLICYUPDATERES 0x17 
                  REGISTERREQ          0x04            POLICYSTARTREQ  0x18 
                  REGISTERRES          0x05            POLICYSTARTRES  0x19 
                  ACCOUNTADDREQ        0x06            POLICYSTOPREQ   0x1A 
                  ACCOUNTADDRES        0x07            POLICYSTOPRES   0x1B 
                  ACCOUNTDELREQ        0x08            POLICYRESETREQ  0x1C 
                  ACCOUNTDELRES        0x09            POLICYRESETRES  0x1D 
                  ACCOUNTCHANGEREQ     0x0A            LIFSTARTREQ     0x1E 
                  ACCOUNTCHANGERES     0x0B            LIFSTARTRES     0x1F 
                  ACCOUNTSUSPENDREQ    0x0C            LIFSTOPREQ      0x20 
                  ACCOUNTSUSPENDRES    0x0D            LIFSTOPRES      0x21 
                  ACCOUNTUNSUSPENDREQ  0x0E            LIFDATA 0x22 
                  ACCOUNTUNSUSPENDRES  0x0F            SYNCREQ 0x23 
                  ACCOUNTREQ           0x10            (not used)      0x24 
                  ACCOUNTRES           0x11            SYNCDATA        0x25 
                  POLICYADDREQ         0x12            OPENLNKREQ      0x26 
                  POLICYADDRES         0x13            OPENLNKRES      0x27 
                  POLICYDELETEREQ      0x14            CLOSELNK        0x28 
                   
               9.5. Error codes 
                   
               9.5.1. BASE protocol errors: 
                   
                       0       No error occurred 
                       1       Open in progress 
                       2       License key already in use 
                       14      Protocol violation 
                       15      An internal error occurred 
                       Others  Undefined 
                   
               9.5.2. Application errors: 
                   
                       0       SUCCESS 
                       1       ERROR 
                       2       SHUTDOWN 
                   
               9.6. Regular BASE Expressions 
                   
                  To allow not just for fixed strings of characters, variable patterns 
                  of words may be used. These patterns are referred to as "regular 
                  expressions". They are made up by combining literal characters with 
                  a number of special characters called metacharacters. 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  64 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  BASE lets you use regular expressions instead of fixed strings for 
                  the domains of a parameter. Regular BASE expressions have to follow 
                  the rules below. They come in two different variants: 
                   
                  1) Character sets, matching a character at a single position 
                  2) Modifiers, specifying how many times the previous expression has 
                  to be repeated 
                   
                  BASE expects that it is always the longest match that will be taken, 
                  if more than one match is found. The syntax of regular BASE 
                  expressions is as follows: 
                   
               9.6.1. Grammar 
                   
                  <base_re>            ::=     <expression> { <expression> } 
                               |       <base_re> '|' <base_re> 
                  <expression> ::=     <term> 
                               |       <term> '?' 
                               |       <term> '+' 
                               |       <term> '*' 
                               |       <term> '{' { <number> } ',' { <number> } '}' 
                               |       '!' <term> 
                               |       '^' <term> 
                               |       '$' <term> 
                  <term>               ::=     <label> 
                               |       '(' <base_re> ')' 
                  <number>     ::=     0..65535 
                  <label>              ::=     <symbol> 
                               |       '[' <range> { <range> } ']' 
                  <range>              ::=     <symbol> 
                               |       <character> '-' <character> 
                  <symbol>     ::=     '.' 
                               |       <character> 
                               |       '\' <metachar> 
                  <character>  ::=     Any character except \|()[]{}-+*?.^$ 
                  <metachar>   ::=     '\' | '|' | '(' | ')' | '[' | ']' | '{' | '}' 
                               |       '-' | '+' | '?' | '*' | '.' | '^' | '$' 
                               |       'd' | 'D' | 's' | 'S' | 'a' | 'A' 
                               |       'w' <hexdigit> <hexdigit> <hexdigit> <hexdigit> 
                               |       'b' <hexdigit> <hexdigit> 
                               |       't' | 'n' | 'r' 
                  <hexdigit>   ::=     0..f 
                   
               9.6.2. Explanation: 
                   
                  Any character except \ | ( ) [ ] { } - + * ? . ^ $ matches itself 
                   
                  \ | ( ) [ ] { } - + * ? . ^ $        are metacharacters and can be 
                  escaped with a leading backslash ("\"), i. e. "\?" matches "?" and 
                  "\\" matches "\" 
                   
                  .            matches any single character 
                   
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  65 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  [abc]        matches any one of the characters enclosed between the  
                               brackets 
                                
                  [a-d]        matches any character in the enclosed range. Ranges can  
                               be combined, i. e. "a-d0-8YZ" 
                                
                  !            negates the match of the following term 
                   
                  ^            requires the following term to be at the beginning of  
                               the string 
                                
                  $            requires the following term to be at the end of the  
                               string 
                   
                  {n,m}        match the preceding regular expression a minimum number  
                               of n times and a maximum of m times (0 through 65535  
                               are allowed for n and m). n and m can be omitted. 
                               Omitting n is interpreted as n=0, omitting m is 
                               interpreted as m=65535 
                                
                  +            match one or more of the preceding expression. Same as  
                               {1,} 
                                
                  ?            match zero or one of the preceding expression. Same as  
                               {,1} 
                                
                  *            match zero or more of the preceding expression. Same as  
                               {,} 
                                
                  |            Separator; match either the preceding or  the following  
                               expression 
                                
                  ()           group the regular expressions within and apply the  
                               match to the set 
                                
                  \            treat the next character literally. This is normally  
                               used to escape the meaning of special characters such  
                               as "." and "*". 
                                
                  \d           matches any decimal digit; this is equivalent to the  
                               class [0-9] 
                                
                  \D           matches any non-digit character; this is equivalent to  
                               the class ![0-9] 
                                
                  \s           matches any whitespace character; this is equivalent to  
                               the class [ \t\n\r] 
                                
                  \S           matches any non-whitespace character; this is  
                               equivalent to the class ![ \t\n\r] 
                                
                  \a           matches any alphanumeric character; this is equivalent  
                               to the class [a-zA-Z0-9_] 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  66 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                                
                  \A           matches any non-alphanumeric character; this is  
                               equivalent to the class ![a-zA-Z0-9_] 
                                
                  \bnn         matches the hex-code 0xnn with n in [0-9a-f]. \b  
                               matches one byte with ASCII-code nn 
                                
                  \wnnmm       matches the hex-code 0xnnmm with n in [0-9a-f]; this is  
                               equivalent to \bnn\bmm 
                                
                  \t           matches the tab-character 
                   
                  \n           matches the newline-character 
                   
                  \r           matches the return-character 
                   
                   
               10. Security Considerations 
                
                  Authentication and crypting will be part of the next version of 
                  BASE. 
                   
               11. References 
                   
                
                  1  Bradner, S., "The Internet Standards Process -- Revision 3", BCP 
                     9, RFC 2026, October 1996. 
                   
                  2  Mills, C., Hirsch G. and Ruth, G. "Internet Accounting  
                     Background", RFC 1272, November 1991. 
                   
                  3.  Reynolds, J., Postel, C., "Assigned Numbers", RFC 1700, October  
                      1994. 
                   
                  4  Braden, R., Clark, D. Shenker, S., ½ Integrated Services in the  
                     Internet Architecture: an Overview", RFC 1633, June 1994. 
                   
                  5  Mills, D.L., "Network Time Protocol (NTP)", RFC 958, September  
                     1985. 
                   
                  6  Rigney, C., "RADIUS Accounting", RFC 2139, April 1997. 
                   
                  7  Aboba, B. and Lidyard, D., "The Accounting Data Interchange  
                     Fofrmat (ADIF)", Internet Draft (Work in progress), draft-ietf- 
                     roamops-actng .. 
                   
                  8  Brownlee, N., Mills, C., Ruth, G., "Traffic Flow Measurement:  
                     Architecture", RFC 2722, October 1999. 
                   
                  9  Brownlee, N., "Traffic Flow Measurement: Meter MIB", RFC 2720,  
                     October 1999. 
                   
                  10 Handelman, S., Brownlee, N., Ruth, G., Stibler, S., "New  
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  67 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                     Atribuites for Traffic Flow Measurement", RFC 2724, October 1999. 
                   
                  11 Case, J., Fedor, M., Schoffstall, M., Davin, J., "A simple  
                     Network Management Protocol (SNMP)", RFC 1157, May 1990. 
                   
                  12 McCloghrie, K., Heinanen, J., Greene, W., Prasad, A., "Accounting  
                     Information for ATM Networks", RFC 2512, February 1999. 
                   
               12. Acknowledgments 
                   
                  The authors would like to thank Prof. Dr. Steigner (University of 
                  Koblenz) and his team for many useful discussions. Furthermore we 
                  would like to thank Angelika Modzden for the review and translation 
                  of the original german BASE-Document and Jens Mozdzen for the 
                  discussions about the protocol details. 
                  Finally the authors would like to thank the BillingWare-team of 
                  INTERNET ONLINE AG for the technical support and the fast 
                  development of the BASE implementations. 
                   
               13. Author's Addresses 
                   
                  Odo Maletzki 
                  INTERNET ONLINE AG 
                  Eupener Strasse 148 
                  50933 Koeln 
                  Germany 
                  Phone: +49 (221) 2766-0 
                  Email: Odo.Maletzki@ioag.com 
                   
                  Thilo Dieckmann 
                  INTERNET ONLINE AG 
                  Eupener Strasse 148 
                  50933 Koeln 
                  Germany 
                  Phone: +49 (221) 2766-0 
                  Email: Thilo.Dieckmann@ioag.com 
                   
                  Martin Grundmann 
                  INTERNET ONLINE AG 
                  Eupener Strasse 148 
                  50933 Koeln 
                  Germany 
                  Phone: +49 (221) 2766-0 
                  Email: Martin.Grundmann@ioag.com 
                   
               14. Full Copyright Statement 
                   
                  "Copyright (C) The Internet Society (date). All Rights Reserved. 
                  This document and translations of it may be copied and furnished to 
                  others, and derivative works that comment on or otherwise explain it 
                  or assist in its implmentation may be prepared, copied, published 
                  and distributed, in whole or in part, without restriction of any 
                  kind, provided that the above copyright notice and this paragraph 
                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  68 

               INTERNET DRAFT       BASE Protocol Specification           April 2000 
                
                
                  are included on all such copies and derivative works. However, this 
                  document itself may not be modified in any way, such as by removing 
                  the copyright notice or references to the Internet Society or other 
                  Internet organizations, except as needed for the purpose of 
                  developing Internet standards in which case the procedures for 
                  copyrights defined in the Internet Standards process must be 
                  followed, or as required to translate it into languages other than 
                  English. The limited permissions above are perpetual and will not be 
                  revoked by the Internet Society or its successors or assigns. This 
                  document and the information contained herein is provided as an "AS 
                  IS" basis. 
                   
                   
                   
               15. Expiration Date 
                   
                  This memo is filed as <draft-ioag-base-00.txt> and expires October 
                  31, 2000. 
                   


































                 
               Maletzki, Dieckmann, Grundmann   Informational - October 31, 2000  69