pespin has uploaded this change for review.
diameter: Add spec definitions for S6b (TS 28.273 and dep RFC 5777)
S6b interface HSS<->PGW is defined in TS 28.273 section 9.
TS 28.273 depends on some types defined in RFC 5777, which was missing
so far.
Some enumareated types in RFC 5777 whose enums fields are declared in
yet other dependent RFCs are left with a dummy value, as TODO for the
future if they are ever needed.
Related: OS#6229
Change-Id: I8075dd54a5fec386feecdf797d710a2524413acc
---
A dia/diameter_3gpp_ts29_273_s6b.dia
A dia/diameter_rfc5777.dia
2 files changed, 553 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/57/34857/1
diff --git a/dia/diameter_3gpp_ts29_273_s6b.dia b/dia/diameter_3gpp_ts29_273_s6b.dia
new file mode 100644
index 0000000..790a43d
--- /dev/null
+++ b/dia/diameter_3gpp_ts29_273_s6b.dia
@@ -0,0 +1,166 @@
+;;
+;; %CopyrightBegin%
+;;
+;; Copyright (C) 2023 by sysmocom - s.m.f.c. GmbH <info@sysmocom.de>
+;; Author: Pau Espin Pedrol <pespin@sysmocom.de>
+;;
+;; This resembles 3GPP TS 29.273 version 17.6.0 Release 17
+;;
+;; Licensed under the Apache License, Version 2.0 (the "License");
+;; you may not use this file except in compliance with the License.
+;; You may obtain a copy of the License at
+;;
+;; http://www.apache.org/licenses/LICENSE-2.0
+;;
+;; Unless required by applicable law or agreed to in writing, software
+;; distributed under the License is distributed on an "AS IS" BASIS,
+;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+;; See the License for the specific language governing permissions and
+;; limitations under the License.
+;;
+;; %CopyrightEnd%
+;;
+
+;;
+;; Edits:
+;;
+;;
+
+
+@id 16777272
+@name diameter_3gpp_ts29_273_s6b
+;;@prefix diameter_3gpp
+@vendor 10415 3GPP
+
+@inherits diameter_gen_base_rfc6733
+@inherits diameter_3gpp_base
+@inherits diameter_3gpp_break_circles
+@inherits diameter_3gpp_ts29_212
+@inherits diameter_3gpp_ts29_214
+@inherits diameter_3gpp_ts29_229
+@inherits diameter_3gpp_ts29_272
+@inherits diameter_3gpp_ts29_273
+@inherits diameter_3gpp_ts32_299
+@inherits diameter_etsi_es283_034
+@inherits diameter_rfc4006_cc
+@inherits diameter_rfc5447
+@inherits diameter_rfc5580
+@inherits diameter_rfc5777
+@inherits diameter_rfc5778
+@inherits diameter_rfc7683
+@inherits diameter_rfc7944
+@inherits diameter_rfc8583
+
+@messages
+
+;; 9. S6b
+;; 9.2.2.2.1 AA-Request (AAR)
+
+ AAR ::= < Diameter Header: 265, REQ, PXY >
+ < Session-Id >
+ { Auth-Application-Id }
+ { Origin-Host }
+ { Origin-Realm }
+ { Destination-Realm }
+ { Auth-Request-Type }
+ [ User-Name ]
+ [ MIP6-Agent-Info ]
+ [ MIP6-Feature-Vector ]
+ [ Visited-Network-Identifier ]
+ [ QoS-Capability ]
+ [ Service-Selection ]
+ [ OC-Supported-Features ]
+ [ Origination-Time-Stamp ]
+ [ Maximum-Wait-Time ]
+ *[ Supported-Features ]
+ [ Emergency-Services ]
+ *[ AVP ]
+
+;; 9.2.2.2.2 AA-Answer (AAA)
+ AAA ::= < Diameter Header: 265, PXY >
+ < Session-Id >
+ { Auth-Application-Id }
+ { Auth-Request-Type }
+ { Result-Code }
+ { Origin-Host }
+ { Origin-Realm }
+ [ MIP6-Feature-Vector ]
+ [ Session-Timeout ]
+ [ APN-Configuration ]
+ [ QoS-Resources ]
+ [ AN-Trusted ]
+ *[ Redirect-Host ]
+ [ Trace-Info ]
+ [ OC-Supported-Features ]
+ [ OC-OLR ]
+ *[ Load ]
+
+;; 9.2.2.3.1 Session-Termination-Request (STR)
+;; 9.2.2.4.3 Session-Termination-Request (STR)
+ STR ::= < Diameter Header: 275, REQ, PXY >
+ < Session-Id >
+ { Auth-Application-Id }
+ { Origin-Host }
+ { Origin-Realm }
+ { Destination-Realm }
+ { Termination-Cause }
+ [ User-Name ]
+ [ OC-Supported-Features ]
+ *[ AVP ]
+
+;; 9.2.2.3.2 Session-Termination-Answer (STA)
+;; 9.2.2.4.4 Session-Termination-Answer (STA)
+ STA ::= < Diameter Header: 275, PXY >
+ < Session-Id >
+ { Result-Code }
+ { Origin-Host }
+ { Origin-Realm }
+ [ OC-Supported-Features ]
+ [ OC-OLR ]
+ *[ Load ]
+ *[ AVP ]
+
+;; 9.2.2.4.1 Abort-Session-Request (ASR)
+ ASR ::= < Diameter Header: 274, REQ, PXY >
+ < Session-Id >
+ { Origin-Host }
+ { Origin-Realm }
+ { Destination-Realm }
+ { Destination-Host }
+ { Auth-Application-Id }
+ [ User-Name ]
+ [ Auth-Session-State ]
+ *[ AVP ]
+
+;; 9.2.2.4.2 Abort-Session-Answer (ASA)
+ ASA ::= < Diameter Header: 274, PXY >
+ < Session-Id >
+ { Result-Code }
+ { Origin-Host }
+ { Origin-Realm }
+ *[ AVP ]
+
+;; TODO: 9.2.2.5 Commands for S6b MIPv4 FACoA Authorization Procedures
+
+;; 9.2.2.6.1 Re-Auth-Request (RAR)
+ RAR ::= < Diameter Header: 258, REQ, PXY >
+ < Session-Id >
+ { Origin-Host }
+ { Origin-Realm }
+ { Destination-Realm }
+ { Destination-Host }
+ { Auth-Application-Id }
+ { Re-Auth-Request-Type }
+ [ User-Name ]
+ [RAR-Flags ]
+ *[ AVP ]
+
+;; 9.2.2.6.2 Re-Auth-Answer (RAA)
+
+ RAA ::= < Diameter Header: 258, PXY >
+ < Session-Id >
+ { Result-Code }
+ { Origin-Host }
+ { Origin-Realm }
+ [ User-Name ]
+ *[ AVP ]
diff --git a/dia/diameter_rfc5777.dia b/dia/diameter_rfc5777.dia
new file mode 100644
index 0000000..916e08d
--- /dev/null
+++ b/dia/diameter_rfc5777.dia
@@ -0,0 +1,368 @@
+;;
+;; %CopyrightBegin%
+;;
+;; Transcribed from RFC 5777 by Pau Espin Pedrol <pespin@sysmocom.de>
+;;
+;; Licensed under the Apache License, Version 2.0 (the "License");
+;; you may not use this file except in compliance with the License.
+;; You may obtain a copy of the License at
+;;
+;; http://www.apache.org/licenses/LICENSE-2.0
+;;
+;; Unless required by applicable law or agreed to in writing, software
+;; distributed under the License is distributed on an "AS IS" BASIS,
+;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+;; See the License for the specific language governing permissions and
+;; limitations under the License.
+;;
+;; %CopyrightEnd%
+;;
+
+;;
+;; RFC 5777, Traffic Classification and Quality of Service (QoS) Attributes for Diameter
+;;
+
+@id 1
+
+@inherits diameter_gen_base_rfc6733
+;;@inherits diameter_rfc4004
+
+;; ===========================================================================
+
+@avp_types
+
+QoS-Resources 508 Grouped - ;; 3.1
+Filter-Rule 509 Grouped - ;; 3.2
+Filter-Rule-Precedence 510 Unsigned32 - ;; 3.3
+Classifier 511 Grouped - ;; 4.1.1
+Classifier-ID 512 OctetString - ;; 4.1.2
+Protocol 513 Enumerated - ;; 4.1.3
+Direction 514 Enumerated - ;; 4.1.4
+From-Spec 515 Grouped - ;; 4.1.5
+To-Spec 516 Grouped - ;; 4.1.6
+Negated 517 Enumerated - ;; 4.1.7.1
+IP-Address 518 Address - ;; 4.1.7.2
+IP-Address-Range 519 Grouped - ;; 4.1.7.3
+IP-Address-Start 520 Address - ;; 4.1.7.4
+IP-Address-End 521 Address - ;; 4.1.7.5
+IP-Address-Mask 522 Grouped - ;; 4.1.7.6
+IP-Mask-Bit-Mask-Width 523 Unsigned32 - ;; 4.1.7.7
+MAC-Address 524 OctetString - ;; 4.1.7.8
+MAC-Address-Mask 525 Grouped - ;; 4.1.7.9
+MAC-Address-Mask-Pattern 526 OctetString - ;; 4.1.7.10
+EUI64-Address 527 OctetString - ;; 4.1.7.11
+EUI64-Address-Mask 528 Grouped - ;; 4.1.7.12
+EUI64-Address-Mask-Pattern 529 OctetString - ;; 4.1.7.13
+Port 530 Integer32 - ;; 4.1.7.14
+Port-Range 531 Grouped - ;; 4.1.7.15
+Port-Start 532 Integer32 - ;; 4.1.7.16
+Port-End 533 Integer32 - ;; 4.1.7.17
+Use-Assigned-Address 534 Enumerated - ;; 4.1.7.18
+Diffserv-Code-Point 535 Enumerated - ;; 4.1.8.1
+Fragmentation-Flag 536 Enumerated - ;; 4.1.8.2
+IP-Option 537 Grouped - ;; 4.1.8.3
+IP-Option-Type 538 Enumerated - ;; 4.1.8.4
+IP-Option-Value 539 OctetString - ;; 4.1.8.5
+TCP-Option 540 Grouped - ;; 4.1.8.6
+TCP-Option-Type 541 Enumerated - ;; 4.1.8.7
+TCP-Option-Value 542 OctetString - ;; 4.1.8.8
+TCP-Flags 543 Grouped - ;; 4.1.8.9
+
+TCP-Flag-Type 544 Unsigned32 - ;; 4.1.8.10
+ICMP-Type 545 Grouped - ;; 4.1.8.11
+ICMP-Type-Number 546 Enumerated - ;; 4.1.8.12
+ICMP-Code 547 Enumerated - ;; 4.1.8.13
+ETH-Option 548 Grouped - ;; 4.1.8.14
+ETH-Proto-Type 549 Grouped - ;; 4.1.8.15
+ETH-Ether-Type 550 OctetString - ;; 4.1.8.16
+ETH-SAP 551 OctetString - ;; 4.1.8.17
+VLAN-ID-Range 552 Grouped - ;; 4.1.8.18
+S-VID-Start 553 Unsigned32 - ;; 4.1.8.19
+S-VID-End 554 Unsigned32 - ;; 4.1.8.20
+C-VID-Start 555 Unsigned32 - ;; 4.1.8.21
+C-VID-End 556 Unsigned32 - ;; 4.1.8.22
+User-Priority-Range 557 Grouped - ;; 4.1.8.23
+Low-User-Priority 558 Unsigned32 - ;; 4.1.8.24
+High-User-Priority 559 Unsigned32 - ;; 4.1.8.25
+Time-Of-Day-Condition 560 Grouped - ;; 4.2.1
+Time-Of-Day-Start 561 Unsigned32 - ;; 4.2.2
+Time-Of-Day-End 562 Unsigned32 - ;; 4.2.3
+Day-Of-Week-Mask 563 Unsigned32 - ;; 4.2.4
+Day-Of-Month-Mask 564 Unsigned32 - ;; 4.2.5
+Month-Of-Year-Mask 565 Unsigned32 - ;; 4.2.6
+Absolute-Start-Time 566 Time - ;; 4.2.7
+Absolute-Start-Fractional-Seconds 567 Unsigned32 - ;; 4.2.8
+Absolute-End-Time 568 Time - ;; 4.2.9
+Absolute-End-Fractional-Seconds 569 Unsigned32 - ;; 4.2.10
+Timezone-Flag 570 Enumerated - ;; 4.2.11
+Timezone-Offset 571 Integer32 - ;; 4.2.12
+Treatment-Action 572 Enumerated - ;; 5.1, wrongly defined as Grouped in RFC table
+QoS-Profile-Id 573 Unsigned32 - ;; 5.2
+QoS-Profile-Template 574 Grouped - ;; 5.3
+QoS-Semantics 575 Enumerated - ;; 5.4
+QoS-Parameters 576 Grouped - ;; 5.5
+Excess-Treatment 577 Grouped - ;; 5.6
+QoS-Capability 578 Grouped - ;; 6
+
+;; ===========================================================================
+
+@grouped
+
+;; 3.1
+QoS-Resources ::= < AVP Header: 508 >
+ 1*{ Filter-Rule }
+ *[ AVP ]
+
+;; 3.2
+Filter-Rule ::= < AVP Header: 509 >
+ [ Filter-Rule-Precedence ]
+;; Condition part of a Rule
+;; ------------------------
+ [ Classifier ]
+ *[ Time-Of-Day-Condition ]
+;; Action and Meta-Data
+;; --------------------
+ [ Treatment-Action ]
+
+;; Info about QoS related Actions
+;; ------------------------------
+ [ QoS-Semantics ]
+ [ QoS-Profile-Template ]
+ [ QoS-Parameters ]
+ [ Excess-Treatment ]
+;; Extension Point
+;; ---------------
+ *[ AVP ]
+
+;; 4.1.1.
+Classifier ::= < AVP Header: 511 >
+ { Classifier-ID }
+ [ Protocol ]
+ [ Direction ]
+ *[ From-Spec ]
+ *[ To-Spec ]
+ *[ Diffserv-Code-Point ]
+ [ Fragmentation-Flag ]
+ *[ IP-Option ]
+ *[ TCP-Option ]
+ [ TCP-Flags ]
+ *[ ICMP-Type ]
+ *[ ETH-Option ]
+ *[ AVP ]
+
+;; 4.1.5.
+From-Spec ::= < AVP Header: 515 >
+ *[ IP-Address ]
+ *[ IP-Address-Range ]
+ *[ IP-Address-Mask ]
+ *[ MAC-Address ]
+ *[ MAC-Address-Mask]
+ *[ EUI64-Address ]
+ *[ EUI64-Address-Mask]
+ *[ Port ]
+ *[ Port-Range ]
+ [ Negated ]
+ [ Use-Assigned-Address ]
+ *[ AVP ]
+
+;; 4.1.6
+To-Spec ::= < AVP Header: 516 >
+ *[ IP-Address ]
+ *[ IP-Address-Range ]
+ *[ IP-Address-Mask ]
+ *[ MAC-Address ]
+ *[ MAC-Address-Mask]
+ *[ EUI64-Address ]
+ *[ EUI64-Address-Mask]
+ *[ Port ]
+ *[ Port-Range ]
+ [ Negated ]
+ [ Use-Assigned-Address ]
+ *[ AVP ]
+
+;; 4.1.7.3.
+IP-Address-Range ::= < AVP Header: 519 >
+ [ IP-Address-Start ]
+ [ IP-Address-End ]
+ *[ AVP ]
+
+;; 4.1.7.6
+IP-Address-Mask ::= < AVP Header: 522 >
+ { IP-Address }
+ { IP-Mask-Bit-Mask-Width }
+ *[ AVP ]
+
+;; 4.1.7.9.
+MAC-Address-Mask ::= < AVP Header: 525 >
+ { MAC-Address }
+ { MAC-Address-Mask-Pattern }
+ *[ AVP ]
+
+;; 4.1.7.12.
+EUI64-Address-Mask ::= < AVP Header: 528 >
+ { EUI64-Address }
+ { EUI64-Address-Mask-Pattern }
+ *[ AVP ]
+
+;; 4.1.7.15.
+Port-Range ::= < AVP Header: 531 >
+ [ Port-Start ]
+ [ Port-End ]
+ *[ AVP ]
+
+;; 4.1.8.3.
+IP-Option ::= < AVP Header: 537 >
+ { IP-Option-Type }
+ *[ IP-Option-Value ]
+ [ Negated ]
+ *[ AVP ]
+
+;; 4.1.8.6.
+TCP-Option ::= < AVP Header: 540 >
+ { TCP-Option-Type }
+ *[ TCP-Option-Value ]
+ [ Negated ]
+ *[ AVP ]
+
+;; 4.1.8.9.
+TCP-Flags ::= < AVP Header: 543 >
+ { TCP-Flag-Type }
+ [ Negated ]
+ *[ AVP ]
+
+;; 4.1.8.11
+ICMP-Type ::= < AVP Header: 545 >
+ { ICMP-Type-Number }
+ *[ ICMP-Code ]
+ [ Negated ]
+ *[ AVP ]
+
+;; 4.1.8.14
+ETH-Option ::= < AVP Header: 548 >
+ { ETH-Proto-Type }
+ *[ VLAN-ID-Range ]
+ *[ User-Priority-Range ]
+ *[ AVP ]
+
+;; 4.1.8.15
+ETH-Proto-Type ::= < AVP Header: 549 >
+ *[ ETH-Ether-Type ]
+ *[ ETH-SAP ]
+ *[ AVP ]
+
+;; 4.1.8.18
+VLAN-ID-Range ::= < AVP Header: 552 >
+ [ S-VID-Start ]
+ [ S-VID-End ]
+ [ C-VID-Start ]
+ [ C-VID-End ]
+ *[ AVP ]
+
+;; 4.1.8.23
+User-Priority-Range ::= < AVP Header: 557 >
+ *[ Low-User-Priority ]
+ *[ High-User-Priority ]
+ *[ AVP ]
+
+;; 4.2.1
+Time-Of-Day-Condition ::= < AVP Header: 560 >
+ [ Time-Of-Day-Start ]
+ [ Time-Of-Day-End ]
+ [ Day-Of-Week-Mask ]
+ [ Day-Of-Month-Mask ]
+ [ Month-Of-Year-Mask ]
+ [ Absolute-Start-Time ]
+ [ Absolute-End-Time ]
+ [ Timezone-Flag ]
+ *[ AVP ]
+
+;; 5.3
+QoS-Profile-Template ::= < AVP Header: 574 >
+ { Vendor-Id }
+ { QoS-Profile-Id }
+ *[ AVP ]
+
+;; 5.5
+QoS-Parameters ::= < AVP Header: 576 >
+ *[ AVP ]
+
+;; 5.6
+Excess-Treatment ::= < AVP Header: 577 >
+ { Treatment-Action }
+ [ QoS-Profile-Template ]
+ [ QoS-Parameters ]
+ *[ AVP ]
+
+;; 6.
+QoS-Capability ::= < AVP Header: 578 >
+ 1*{ QoS-Profile-Template }
+ *[ AVP ]
+
+;; ===========================================================================
+
+;; 4.1.3.
+@enum Protocol
+ PROTOCOL_TODO_CHECK_RFC2780 0
+
+;; 4.1.4.
+@enum Direction
+ DIRECTION_IN 0
+ DIRECTION_OUT 1
+ DIRECTION_BOTH 2
+
+;; 4.1.7.1.
+@enum Negated
+ NEGATED_FALSE 0
+ NEGATED_TRUE 1
+
+;; 4.1.7.18
+@enum Use-Assigned-Address
+ USE_ASSIGNED_ADDRESS_FALSE 0
+ USE_ASSIGNED_ADDRESS_TRUE 1
+
+;; 4.1.8.1.
+@enum Diffserv-Code-Point
+ DIFFSERV_CODE_POINT_TODO_CHECK_RFC2474 0
+
+;; 4.1.8.2.
+@enum Fragmentation-Flag
+ FRAGMENTATION_FLAG_DF 0
+ FRAGMENTATION_FLAG_MF 1
+
+;; 4.1.8.4
+@enum IP-Option-Type
+ IP_OPTION_TYPE_TODO_CHECK_RFC2780 0
+
+;; 4.1.8.7.
+@enum TCP-Option-Type
+ TCP_OPTION_TYPE_TODO_CHECK_RFC2780 0
+
+;; 4.1.8.12.
+@enum ICMP-Type-Number
+ ICMP_TYPE_NUMBER_TODO_CHECK_RFC2780 0
+
+;; 4.1.8.13.
+@enum ICMP-Code
+ ICMP_CODE_TODO_CHECK_RFC2780 0
+
+
+;; 4.2.11.
+@enum Timezone-Flag
+ TIMEZOME_FLAG_UTC 0
+ TIMEZOME_FLAG_LOCAL 1
+ TIMEZOME_FLAG_OFFSET 2
+
+;; 5.1.
+@enum Treatment-Action
+ TREATMENT_ACTION_DROP 0
+ TREATMENT_ACTION_SHAPE 1
+ TREATMENT_ACTION_MARK 2
+ TREATMENT_ACTION_PERMIT 3
+
+;; 5.4.
+@enum QoS-Semantics
+ QOS_SEMANTICS_DESIRED 0
+ QOS_SEMANTICS_AVAILABLE 1
+ QOS_SEMANTICS_DELIVERED 2
+ QOS_SEMANTICS_MINIMUM 3
+ QOS_SEMANTICS_AUTHORIZE 4
To view, visit change 34857. To unsubscribe, or for help writing mail filters, visit settings.