diameter_make compilation issues for 3GPP Diameter Commands

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

diameter_make compilation issues for 3GPP Diameter Commands

austin aigbe-2
Hello,

It seems the Erlang Diameter dictionary compiler (diameter_make) is not compatible with the 3GPP Diameter commands.

When I try compiling the attached .dia file, for Cx (3GPP TS 29.299 v12.7.0), I get the following error:

10> diameter_make:codec("cx_ts29229_v1270.dia",[hrl]).
{error,{invalid_avp_order,[123,"Destination-Realm",125,95]}}

-------------------------
@messages

  UAR ::= < Diameter Header: 300, REQ, PXY >
  < Session-Id >
  { Vendor-Specific-Application-Id } 
  { Auth-Session-State }
  { Origin-Host }
  { Origin-Realm }
  [ Destination-Host ]
  { Destination-Realm }
  { User-Name }
----------------------------

Or am I doing something wrong? Kindly advise.

Erlang version:

Erlang/OTP 20 [erts-9.0] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10]

Eshell V9.0  (abort with ^G)

Thanks.

Regards,
Austin

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions

cx_ts29229_v1270.dia (12K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: diameter_make compilation issues for 3GPP Diameter Commands

Ferenc Holzhauser
Hi, 

As the error message suggests, the problem is most likely that the optional [ Destination-Host ] AVP is on the wrong spot in the message definition. According to the Diameter Base Protocol spec (RFC 6733, Chapter 3.2) the sequence of AVPs after the header should be : fixed ( <...> ) , required ( {...} ) , optional ( [...] ). You should probably fix the message definition to follow this order. My experience with picking message definitions from 3GPP diameter protocol specs is that they almost always need (sometimes significant) handcrafting to work.

Regards,
Ferenc

On 9 July 2017 at 08:41, austin aigbe <[hidden email]> wrote:
Hello,

It seems the Erlang Diameter dictionary compiler (diameter_make) is not compatible with the 3GPP Diameter commands.

When I try compiling the attached .dia file, for Cx (3GPP TS 29.299 v12.7.0), I get the following error:

10> diameter_make:codec("cx_ts29229_v1270.dia",[hrl]).
{error,{invalid_avp_order,[123,"Destination-Realm",125,95]}}

-------------------------
@messages

  UAR ::= < Diameter Header: 300, REQ, PXY >
  < Session-Id >
  { Vendor-Specific-Application-Id } 
  { Auth-Session-State }
  { Origin-Host }
  { Origin-Realm }
  [ Destination-Host ]
  { Destination-Realm }
  { User-Name }
----------------------------

Or am I doing something wrong? Kindly advise.

Erlang version:

Erlang/OTP 20 [erts-9.0] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10]

Eshell V9.0  (abort with ^G)

Thanks.

Regards,
Austin

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Loading...