pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/34857?usp=email )

Change subject: diameter: Add spec definitions for S6b (TS 28.273 and dep RFC 
5777)
......................................................................

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(-)

Approvals:
  lynxis lazus: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/dia/diameter_3gpp_ts29_273_s6b.dia 
b/dia/diameter_3gpp_ts29_273_s6b.dia
new file mode 100644
index 0000000..b009e20
--- /dev/null
+++ b/dia/diameter_3gpp_ts29_273_s6b.dia
@@ -0,0 +1,166 @@
+;;
+;; %CopyrightBegin%
+;;
+;; Copyright (C) 2023 by sysmocom - s.f.m.c. GmbH <[email protected]>
+;; Author: Pau Espin Pedrol <[email protected]>
+;;
+;; 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 <[email protected]>
+;;
+;; 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 https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/34857?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I8075dd54a5fec386feecdf797d710a2524413acc
Gerrit-Change-Number: 34857
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: lynxis lazus <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to