One document matched: draft-roach-sipping-clf-syntax-00.txt
Network Working Group A. B. Roach
Internet-Draft Tekelec
Expires: September 26, 2009 March 25, 2009
Binary Syntax for SIP Common Log Format
draft-roach-sipping-clf-syntax-00
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 26, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Roach Expires September 26, 2009 [Page 1]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Abstract
This document proposes a binary syntax for the SIP common log format
(CLF). It does not cover semantic issues, and is meant to be
evaluated in the context of the other efforts discussing SIP CLF.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Normative References . . . . . . . . . . . . . . . . . . . . . 7
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7
Roach Expires September 26, 2009 [Page 2]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
1. Introduction
The Common Log File (CLF) format for the Session Initiation Protocol
(SIP) [I-D.gurbani-sipping-clf] proposes a syntax for logging SIP
messages received and sent by SIP clients, servers, and proxies. The
syntax proposed by that document has been inspired by the common HTTP
log format. However, experience with that format has shown that
dealing with large quantities of log data can be very processor
intensive, as doing so necessary requires reading and parsing every
byte in the log file(s) of interest.
This document counterpropses a format that is no more difficult to
generate by logging entites, while being radically faster to process.
In particular, the format is optimized for both rapidly scanning
through log records, as well as quickly locating commonly-accessed
data fields. Both operations can be performed in constant time (as
compared with O(n) time associated with the current format, where n
is the length of the log record).
2. Format
Each data record is encoded according to the following format:
Roach Expires September 26, 2009 [Page 3]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Flags | Record Length | 0 - 3
+--------+--------+--------+--------+
| Date/Time (bits 32-63) | 4 - 7
+ + + + +
| Date/Time (bits 0-31) | 8 - 11
+--------+--------+--------+--------+
| Time (nanoseconds) | 12 - 15
+--------+--------+--------+--------+
| CSeq Number | 16 - 19
+--------+--------+--------+--------+
| Response Code | TLV Start Ptr | 20 - 23
+--------+--------+--------+--------+
| Server Txn Ptr | Server Txn Len | 24 - 27
+--------+--------+--------+--------+
| Client Txn Ptr | Client Txn Len | 28 - 31
+--------+--------+--------+--------+
| Method Pointer | Method Length | 32 - 35
+--------+--------+--------+--------+
| To Value Ptr | To Value Len | 36 - 39
+--------+--------+--------+--------+
| To Tag Ptr | To Tag Len | 40 - 43
+--------+--------+--------+--------+
| From Value Ptr | From Value Len | 44 - 47
+--------+--------+--------+--------+
| From Tag Ptr | From Tag Len | 48 - 51
+--------+--------+--------+--------+
| Call-Id Pointer | Call-Id Length | 52 - 55
+--------+--------+--------+--------+
| |
| |
| Mandatory Field Data |
| |
| |
+--------+--------+--------+--------+ \
| Tag | Length | \
+--------+--------+--------+--------+ \ Repeated as
| | > many times
| Value | / as necessary
| | /
+--------+--------+--------+--------+ /
Flags Field (1 byte):
Roach Expires September 26, 2009 [Page 4]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
0x80 - Request/Response flag (0 = request, 1 = response)
0x40 - Retransmission flag (Always set to 0 if server is
stateless)
0x20 - Sent/Recieved flag (0 = message received, 1 = message
sent)
0x10 - Reserved
0x08 - Reserved
0x04 - Reserved
0x02 - Reserved
0x01 - Reserved
Record Length (3 bytes): Total length of this log record, including
"Flags" and "Record Length" fields
Date/Time (8 bytes): Seconds since midnight, January 1st, 1970, GMT
Time (4 bytes): Nanoseconds since the time in Date/Time field (<=
999,999,999)
CSeq Number (4 bytes): CSeq number from the SIP message
Response Code (2 bytes): Set to the value of the response code for
responses. Should be set to 0 for requests.
TLV Start Ptr (2 bytes): Indicates an absolute byte value for the
start of tag/length/value (TLV) groups. Set to 0 if no TLVs are
present.
Bytes 24 trough 55 contain pointer/length pairs that point to the
values of variable-length mandatory fields. The "Pointer" fields
indicate absolute byte values within the record, and must be >= 56
bytes. They point to the start of the corresponding value within the
"Mandatory Field Data" area. The "Length" fields indicate the length
of the corresponding value.
Server Txn: The transaction identifier associated with the server
transaction. Implementations MAY reuse the server transaction
identifier (the topmost branch-id of the incoming request, with or
without the magic cookie), or they MAY generate a unique
identification string for a server transaction (this identifier
needs to be locally unique to the server only.) This identifier
is used to correlate ACKs and CANCELs to an INVITE transaction; it
is also used to aid in forking.
Roach Expires September 26, 2009 [Page 5]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
Client Txn: This field is used to associate client transactions with
a server transaction for forking proxies or B2BUAs.
Method: In requests, the method from the start line. In responses,
the method found in the CSeq header field.
To Value: Value of the To header field, possibly with the tag
parameter removed. (Whether to remove the tag paramter is left up
to the logging entity).
To Tag: Value of the To header field tag parameter. If no To header
field tag parameter is present, the pointer field is ignored, and
the length field is set to 0.
From Value: Value of the From header field, possibly with the tag
parameter removed. (Whether to remove the tag paramter is left up
to the logging entity)
From Tag: Value of the From header field tag parameter.
Call-Id: The value of the Call-ID header field
Mandatory Field Data: Contains actual values for the preceding
fields. Note that this data is not necessarily in order, and is
not necessarily non-overlapping. In particular, loggers may
usefully choose to overlap the "To Tag" field with the "To Value"
field (and the "From Tag" field with the "From Value" field).
The Tag/Length/Value groups appear zero or more times, at the
location indicated by the "TLV Start Ptr" field. They are used to
log information that is not mandatory for all messages (although
specific TLVs are mandatory in request logs).
Tag Field (2 bytes): indicates the type of value coded by this TLV.
Currently defined tags are:
0 - Contact value (can be repeated)
Contains entire value of Contact header field
1 - Request URI (mandatory in request)
Contains Request URI in start line
2 - Remote Host (mandatory in request)
The DNS name of IP address from which the message was received
(if "sent/received flag" is 0) of the IP address to which the
message is being send (if "sent/received flag" is 1)
Roach Expires September 26, 2009 [Page 6]
Internet-Draft Binary Syntax for SIP Common Log Format March 2009
3 - Authenticated User
Contans the user name by which the user has been authenticated
4 - Complete SIP Message (optional, should be omitted by default)
Contains complete SIP message. Can be repeated multiple times
to accomodate SIP messages that exceed 65535 bytes in length.
Length Field (2 bytes): indicates the length of the value coded in
this TLV. This length does NOT include the TLV header.
Value Field (0 to 65535 bytes): contains the actual value of this
TLV.
3. Normative References
[I-D.gurbani-sipping-clf]
Gurbani, V., Burger, E., Anjali, T., Abdelnur, H., and O.
Festor, "The Common Log File (CLF) format for the Session
Initiation Protocol (SIP)", draft-gurbani-sipping-clf-01
(work in progress), March 2009.
Appendix A. Acknowledgements
Cullen put me up to this.
Author's Address
Adam Roach
Tekelec
17210 Campbell Rd.
Suite 250
Dallas, TX 75252
US
Email: adam@nostrum.com
Roach Expires September 26, 2009 [Page 7]
| PAFTECH AB 2003-2026 | 2026-04-24 02:39:39 |