From 3cdd095e8de8506881a9856e711a90c9ed723f0a Mon Sep 17 00:00:00 2001
From: Anders Svensson
The codec generation also results in a hrl file that defines records
-for the messages and grouped AVP's defined for the application, these
+for the messages and grouped AVPs defined for the application, these
records being what a user of the diameter application sends and receives.
(Modulo other available formats as discussed in
A prefix is optional but can be used to disambiguate record and constant names -resulting from similarly named messages and AVP's in different +resulting from similarly named messages and AVPs in different Diameter applications.
@@ -182,7 +182,7 @@ Example:
-Defines the integer Number as the the default Vendor-ID of AVP's for +Defines the integer Number as the the default Vendor-ID of AVPs for which the V flag is set. Name documents the owner of the application but is otherwise unused. @@ -200,7 +200,7 @@ Example:
-Defines the integer Number as the Vendor-ID of the AVP's listed in the
+Defines the integer Number as the Vendor-ID of the AVPs listed in the
section content, overriding the
Example:
@@ -277,11 +277,11 @@ to 0 as mandated by the current draft standard.Defines AVPs for which module Mod provides encode/decode. -The section contents consists of type names. -For each AVP Name defined with custom type Type, Mod should export the -function Name/3 with arguments encode|decode, Type and Data, -the latter being the term to be encoded/decoded. -The function returns the encoded/decoded value.
+The section contents consists of AVP names. +For each AVP Name in the content,Can occur 0 or more times (with different values of Mod).
@@ -290,7 +290,7 @@ Can occur 0 or more times (with different values of Mod). Example:
-@custom_types rfc4005_types
+@custom_types rfc4005_avps
Framed-IP-Address
--
cgit v1.2.3
From ca185011269606596814075d4c8f9d13a855866b Mon Sep 17 00:00:00 2001
From: Anders Svensson
@@ -74,7 +74,7 @@ corresponding to applications defined in section 2.4 of RFC 3588:
application with application identifier 0,
A dictionary file consists of distinct sections. -Each section starts with a line consisting of a tag -followed by zero or more arguments. -Each section ends at the the start of the next section or end of file. +Each section starts with a tag followed by zero or more arguments +and ends at the the start of the next section or end of file. Tags consist of an ampersand character followed by a keyword and are separated from their arguments by whitespace. -Whitespace within a section separates individual tokens but its -quantity is insignificant.
+Whitespace separates individual tokens but is otherwise insignificant.The tags, their arguments and the contents of each corresponding section are as follows. -Each section can occur at most once unless otherwise specified. +Each section can occur multiple times unless otherwise specified. The order in which sections are specified is unimportant.
Defines the integer Number as the Diameter Application Id of the
application in question.
-Required if the dictionary defines
@@ -136,16 +135,13 @@ Example:
Defines the name of the generated dictionary module. -The section has empty content. -Mod must match the regular expression '^[a-zA-Z0-9][-_a-zA-Z0-9]*$'; -that is, contains only alphanumerics, hyphens and underscores begin with an -alphanumeric.
+Can occur at most once and defaults to the name of the dictionary file +minus any extension if unspecified. +The section has empty content.-A name is optional and defaults to the name of the dictionary file -minus any extension. -Note that a generated module must have a unique name an not colide -with another module in the system.
+Note that a dictionary module should have a unique name so as not collide +with existing modules in the system.Example:
@@ -159,22 +155,22 @@ Example:-Defines Name as the prefix to be added to record and constant names in -the generated dictionary module and hrl. -The section has empty content. -Name must be of the same form as a @name.
+Defines Name as the prefix to be added to record and constant names +(followed by a-A prefix is optional but can -be used to disambiguate record and constant names -resulting from similarly named messages and AVPs in different -Diameter applications.
+A prefix is optional but can be be used to disambiguate between record +and constant names resulting from similarly named messages and AVPs in +different Diameter applications.Example:
-@prefix etsi_e2_
+@prefix etsi_e2
-Defines the integer Number as the the default Vendor-ID of AVPs for +Defines the integer Number as the the default Vendor-Id of AVPs for which the V flag is set. Name documents the owner of the application but is otherwise unused. +Can occur at most once and is required if an AVP sets the V flag and +is not otherwise assigned a Vendor-Id. The section has empty content.
@@ -200,10 +198,9 @@ Example:
-Defines the integer Number as the Vendor-ID of the AVPs listed in the
+Defines the integer Number as the Vendor-Id of the AVPs listed in the
section content, overriding the
Example:
@@ -221,13 +218,27 @@ Region-Set-Defines the name of a generated dictionary module containing AVP -definitions referenced by the dictionary but not defined by it. -The section content is empty.
+Defines the name of a dictionary module containing AVP +definitions that should be imported into the current dictionary. +The section content consists of the names of those AVPs whose +definitions should be imported from the dictionary, an empty list +causing all to be imported. +Any listed AVPs must not be defined in the current dictionary and +it is an error to inherit the same AVP from more than one +dictionary. + +
+Note that an inherited AVP that sets the V flag takes its Vendor-Id
+from either
-Can occur 0 or more times (with different values of Mod) but all
-dictionaries should typically inherit RFC3588 AVPs from
+All dictionaries should typically inherit RFC3588 AVPs from
@@ -248,13 +259,11 @@ The section consists of definitions of the form
-where Code is the integer AVP code, Flags is a string of V,
-M and P characters indicating the flags to be
-set on an outgoing AVP or a single - (minus) character if none are to
-be set.
-Type identifies either an AVP Data Format as defined in
Example:
@@ -262,8 +271,8 @@ Example:
@avp_types
-Location-Information 350 Grouped VM
-Requested-Information 353 Enumerated V
+Location-Information 350 Grouped MV
+Requested-Information 353 Enumerated V
@@ -276,21 +285,36 @@ to 0 as mandated by the current draft standard.
-Defines AVPs for which module Mod provides encode/decode.
+Specifies AVPs for which module Mod provides encode/decode functions.
The section contents consists of AVP names.
-For each AVP Name in the content,
+Example:
+ +
+@custom_types rfc4005_avps
+
+Framed-IP-Address
+
+-Can occur 0 or more times (with different values of Mod).
+LikeExample:
-@custom_types rfc4005_avps
+@codecs rfc4005_avps
Framed-IP-Address
@@ -360,6 +384,10 @@ SIP-Deregistration-Reason ::= < AVP Header: 383 >
[ SIP-Reason-Info ]
* [ AVP ]
+
+
+Specifying a Vendor-Id in the definition of a grouped AVP is
+equivalent to specifying it with
-Can occur 0 or more times (with different values of Name).
-The AVP in question can be defined in an inherited dictionary in order
-to introduce additional values.
-An AVP so extended must be referenced by in a
Example:
@@ -390,11 +416,18 @@ REMOVE_SIP_SERVER 3+Causes parsing of the dictionary to terminate: +any remaining content is ignored.
+Comments can be included in a dictionary file using semicolon: -text from a semicolon to end of line is ignored.
+characters from a semicolon to end of line are ignored.