From 821a2bd7e4a9141f5dba5fdde30130f9f109de2f Mon Sep 17 00:00:00 2001 From: erititan <elemer.lelik@ericsson.com> Date: Thu, 14 Jan 2016 08:49:58 +0100 Subject: [PATCH] Update to R5A --- RTP_CNL113392.tpd | 4 +- doc/1551-CNL113392.doc | Bin 126464 -> 119296 bytes doc/RTP_CNL113392_PRI.doc | Bin 69120 -> 72704 bytes src/RTP_CNL113392.grp | 2 +- src/RTP_EncDec.cc | 3 +- src/RTP_File.cc | 2 +- src/RTP_File_Types.ttcn | 2 +- src/RTP_Media.ttcn | 2 +- src/RTP_Media_EncDec.cc | 2 +- src/RTP_Types.ttcn | 172 +++++++++++++++++++++++++++++++++++++- 10 files changed, 178 insertions(+), 11 deletions(-) diff --git a/RTP_CNL113392.tpd b/RTP_CNL113392.tpd index 8f833f2..cb6af74 100644 --- a/RTP_CNL113392.tpd +++ b/RTP_CNL113392.tpd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2014 Ericsson + Copyright (c) 2015 Ericsson All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 @@ -10,7 +10,7 @@ File: RTP_CNL113392.tpd Description: tpd project file - Rev: R4A + Rev: R5A Prodnr: CNL 113 392 --> diff --git a/doc/1551-CNL113392.doc b/doc/1551-CNL113392.doc index 068108d50e56799b58102d4478c6c159688317e0..a6f5b93d6046ef88cda7c12662d3e1246c6ea496 100644 GIT binary patch delta 26205 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࠾--DfJkO01q-nVi?IaDu>u>h z37e6N!#IMka1>wT7>?rv?%=MvWxjJiwYZ#fK|A(SWi8tsTKvD)Pc7$y-mWVDm;KaT zGWj!p!2>)*HCj@2XweMK(E=^e3augUKiZ-lMqngHAr_+%=R-d=k(pGaVG$N%36^3R zG9hnbmSY9BBMaHsflsg#x$1`t9r~$-w&rH(r{?mdo?VIk2mMqrOAHRR_JXGTzrJ{S zy?jv_67_Q_lCp>SID)IVhU;qC#g#S1%c?<({bDQ7fPCSHrU*s|!Vr!K$h$@zqR<}$ zFc5<<6vHqM<B^0{@fu#oe09TO=l&<9qH~JXQcGUk|19~h^*>7j8d)#MUQlV~{%1bv z&s<tz_$H>Cu>~I^8#{0SpW_Q$z(rg_9<JajuHiavK;d-Pzzy#3LJ2ivsp@nK74Pp{ zK91eStxD$Y4h`_%>o&$&VzA!({x7=?*?1N~7DO{Lyc~DYk7m0W8qOwnltUv_@#Q87 z{dt986po=R4Q4ua!=0q}!poJo$orI;llW6j$@EueWO^$Fb8^XSW}dflUo~v5qfXoG ztv-RAdTpr-IW6pM_loM;b&b?Bs&+`F!K8HvhGGOpVj@zJhDDJ5{1PlfCRE6LuE0uU zAsajJ2|mRhb@1};O0fFja)<tExpRLtsB%$_!Fr$Yf4kW`A5gftyrAj-uluVJmgHF5 zo?Qnl>Ic&x28ZwwiWu}jPxM9~^o49W{V@QkNJBa@Fb&f&5A(4AA7UNWtFbF9MtscN zQGAVKIF8degUiUn75t4Sc#7xc)r~9LIo<7bs^(lVYAMr;dok00trs)dn#l{Q(%g$Z zCj;_L76tNTbAvq5bcn`Z_!|{C>3rb_e+0mKGInEr6ylJI3}0aslbBhGW!Q*KIF1uI ziF>#YPtIU3G(;m<&+048U&SrRGyL)G?~fcju=l`@0~>aHxZ}XP2UqVsxN7gJrK^^{ zvh-m7<iN~~nd4-BeAPZ1D!MhU{YV|QA)r?Uzl0BJT^8Y<bB1}&nZSbx^TUWTmgjhW z33F?GCm-i<!pJ$n^o=Rs$V4TK?y*Dg#E&&{f8lF>WZ0&<x@%RCTI!9!Qua?h<P*Dp zbW2xX<|YueA-kv(`Q4PDV^^So4|ZWUZsLpDOzUtLh5%mJs)A|=L><(_jJmvwHj5e0 zdfb{}R0FP~Fb&f&14hh7YC{?{p5xa>R8eC_BHV<0IV}KHP!oaZhbMnL`Std%H?CYf zd-~#&8%J~Z9L+hJd*hF7f86-!#@ip|d~~B!=KRbXxkq!2Y`DQ|M*g0bBFoXLhONys z&9v&qt<|cP@=b_tU6<$M)Q`Ei?Fx5ab@hj>bpk2-iLtX~jg_#>jp!yH)LLppPN^xi z#D;o$X05Tv9U9B--o6Z*P<FjA4(~vg=OM^4{Tng#pF6Aaya7L>jh0*L8e9?KJG@D` z-≈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 Q?Sk93&6##rc~$d&0E5`80{{R3 delta 31118 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 diff --git a/doc/RTP_CNL113392_PRI.doc b/doc/RTP_CNL113392_PRI.doc index d7d96de0b63b5e3494d1465cc3723a5d69d7cd85..26efcdd8becc3565b9c4bb54b79af431dfcbcced 100644 GIT binary patch delta 14378 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 delta 11766 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 diff --git a/src/RTP_CNL113392.grp b/src/RTP_CNL113392.grp index 3350278..40f31d2 100644 --- a/src/RTP_CNL113392.grp +++ b/src/RTP_CNL113392.grp @@ -15,7 +15,7 @@ // // File: RTP_CNL113392.grp // Description: RTP group file -// Rev: R4A +// Rev: R5A // Prodnr: CNL 113 392 // Reference: // diff --git a/src/RTP_EncDec.cc b/src/RTP_EncDec.cc index bb085f9..864c798 100644 --- a/src/RTP_EncDec.cc +++ b/src/RTP_EncDec.cc @@ -14,7 +14,7 @@ // // File: RTP_EncDec.cc // Description: RTP -// Rev: R4A +// Rev: R5A // Prodnr: CNL 113 392 // #include "RTP_Types.hh" @@ -42,6 +42,7 @@ RTP__messages__union f__RTP__dec(OCTETSTRING const &data){ bb.clear(); bb.put_s(data_length,raw_data); if(pt>71 && pt<77){ + // Magic numbers. See rfc3550 12. Summary of Protocol Constants PDU__RTCP pdu; pdu.decode(PDU__RTCP_descr_,bb,TTCN_EncDec::CT_RAW); ret_val.rtcp()=pdu; diff --git a/src/RTP_File.cc b/src/RTP_File.cc index f60ce33..bc4ee60 100644 --- a/src/RTP_File.cc +++ b/src/RTP_File.cc @@ -14,7 +14,7 @@ // // File: RTP_File.cc // Description: Media files operation for RTP -// Rev: R4A +// Rev: R5A // Prodnr: CNL 113 392 // diff --git a/src/RTP_File_Types.ttcn b/src/RTP_File_Types.ttcn index fedc621..bb28bca 100644 --- a/src/RTP_File_Types.ttcn +++ b/src/RTP_File_Types.ttcn @@ -14,7 +14,7 @@ // // File: RTP_File_Types.ttcn // Description: Types for the media file operation -// Rev: R4B +// Rev: R5A // Prodnr: CNL 113 392 // diff --git a/src/RTP_Media.ttcn b/src/RTP_Media.ttcn index fcc13f4..3770165 100644 --- a/src/RTP_Media.ttcn +++ b/src/RTP_Media.ttcn @@ -14,7 +14,7 @@ // // File: RTP_Media.ttcn // Description: Functions of the media file operations for RTP. -// Rev: R4A +// Rev: R5A // Prodnr: CNL 113 392 module RTP_Media diff --git a/src/RTP_Media_EncDec.cc b/src/RTP_Media_EncDec.cc index 8ba4078..cfe30f4 100644 --- a/src/RTP_Media_EncDec.cc +++ b/src/RTP_Media_EncDec.cc @@ -14,7 +14,7 @@ // // File: RTP_Media_EncDec.cc // Description: Encode/decode functions for the media file operations -// Rev: R4A +// Rev: R5A // Prodnr: CNL 113 392 #include "RTP_File_Types.hh" diff --git a/src/RTP_Types.ttcn b/src/RTP_Types.ttcn index e5b2a86..6b91794 100644 --- a/src/RTP_Types.ttcn +++ b/src/RTP_Types.ttcn @@ -14,7 +14,7 @@ // // File: RTP_Types.ttcn // Description: RTP -// Rev: R4B +// Rev: R5A // Prodnr: CNL 113 392 // module RTP_Types{ @@ -25,6 +25,11 @@ external function f_RTP_enc ( in RTP_messages_union pdu ) return octetstring; external function f_RTP_dec ( in octetstring data ) return RTP_messages_union; external function f_RTP_packet_enc ( in RTP_packet pdu ) return octetstring; external function f_RTP_packet_dec ( in octetstring data ) return RTP_packet; +external function f_RTCP_PDU_enc ( in PDU_RTCP pdu ) return octetstring +with { extension "prototype(convert) encode(RAW)" }; + +external function f_RTCP_PDU_dec ( in octetstring data ) return PDU_RTCP +with { extension "prototype(convert) decode(RAW)" } type set of BIT32_BO_LAST RTP_CSRC_list; @@ -243,18 +248,179 @@ type record RTCP_IE_APP{ variant "FIELDORDER(msb)" }; +type record RTCP_IE_RTPFB { + INT2b version, + BIT1 padding_ind, + INT5b fmt, + LIN1 payload_type, + LIN2_BO_LAST packet_length, + BIT32_BO_LAST SSRC_packet_sender, + BIT32_BO_LAST SSRC_media_sender, + RTCP_RTPFB_union fci optional, + octetstring padding optional +} with { + variant (padding) "PRESENCE(padding_ind = '1'B)"; + variant (packet_length) "LENGTHTO(SSRC_packet_sender,SSRC_media_sender,fci,padding)"; + variant (packet_length) "UNIT(dword32)"; + variant "FIELDORDER(msb)" + variant (fci) "CROSSTAG( + gen_naks, fmt=1; + tmmbr, fmt=3; + tmmbn, fmt=4; + unknown_fci, OTHERWISE + )"; +}; + +type union RTCP_RTPFB_union { + RTCP_generic_NAKs gen_naks, + RTCP_RTPFB_TMMBRs tmmbr, + RTCP_RTPFB_TMMBNs tmmbn, + octetstring unknown_fci +} + +type record of RTCP_RTPFB_TMMB RTCP_RTPFB_TMMBRs + +type record of RTCP_RTPFB_TMMB RTCP_RTPFB_TMMBNs + + type integer INT14b_BO_LAST ( 0 .. 16383 ) with { variant "FIELDLENGTH(14), COMP(nosign), BYTEORDER(last)" }; + +type record RTCP_RTPFB_TMMB { + BIT32_BO_LAST SSRC, + INT6b exp, + integer mantissa ( 0 .. 131072 ), + integer measured_overhead( 0 .. 511 ) +} with { + variant "FIELDORDER(msb)" + variant (mantissa) "FIELDLENGTH(17), COMP(nosign), BYTEORDER(last)" + variant (measured_overhead) "FIELDLENGTH(9), COMP(nosign), BYTEORDER(last)" +} + +type record of RTCP_generic_NAK RTCP_generic_NAKs + +type record RTCP_generic_NAK { + LIN2_BO_LAST pid, + BIT16 blb +} + +type record RTCP_IE_PSFB { + INT2b version, + BIT1 padding_ind, + INT5b fmt, + LIN1 payload_type, + LIN2_BO_LAST packet_length, + BIT32_BO_LAST SSRC_packet_sender, + BIT32_BO_LAST SSRC_media_sender, + RTCP_PSFB_union fci, + octetstring padding optional +} with { + variant (padding) "PRESENCE(padding_ind = '1'B)"; + variant (packet_length) "LENGTHTO(SSRC_packet_sender,SSRC_media_sender,fci,padding)"; + variant (packet_length) "UNIT(dword32)"; + variant "FIELDORDER(msb)" + variant (fci) "CROSSTAG( + pli, fmt=1; + sli, fmt=2; + rpsi, fmt=3; + fir, fmt=4; + tstr, fmt=5; + tstn, fmt=6; + vbcm, fmt=7; + afb, fmt=15; + unknown_fci, OTHERWISE + )"; +}; + +type union RTCP_PSFB_union { + + RTCP_PSFB_PLI pli, + RTCP_PSFB_SLIs sli, + RTCP_PSFB_RPSI rpsi, + RTCP_PSFB_FIRs fir, + RTCP_PSFB_TSTRs tstr, + RTCP_PSFB_TSTNs tstn, + RTCP_PSFB_VBCMs vbcm, + + octetstring afb, + + octetstring unknown_fci +} + +type record of RTCP_PSFB_FIR RTCP_PSFB_FIRs + +type record RTCP_PSFB_FIR{ + BIT32_BO_LAST SSRC, + INT1 seq_no, + OCT3 reserved +} + +type record of RTCP_PSFB_TST RTCP_PSFB_TSTRs +type record of RTCP_PSFB_TST RTCP_PSFB_TSTNs + +type record RTCP_PSFB_TST{ + BIT32_BO_LAST SSRC, + INT1 seq_no, + OCT2 reserved, + integer index ( 0 .. 31) // the encoding includes the 3 reserved + // bit encoded as zero + +} with { + variant (seq_no) "FIELDLENGTH(8)" +} + +type record of RTCP_PSFB_VBCM RTCP_PSFB_VBCMs + +type record RTCP_PSFB_VBCM { + BIT32_BO_LAST SSRC, + INT1 seq_no, + BIT1 marker_bit, + INT7b payload_type, + LIN2_BO_LAST vbcm_length, + octetstring vbcm +} with { + variant "FIELDORDER(msb)" + variant "PADDING(dword32)" + variant (vbcm_length) "LENGTHTO(vbcm)" +} + + +type record RTCP_PSFB_PLI { + // empty +} + +type record of RTCP_PSFB_SLI RTCP_PSFB_SLIs + +type record RTCP_PSFB_SLI{ + INT13b_BO_LAST first, + INT13b_BO_LAST number, + INT6b picture_id +} with { + variant "FIELDORDER(msb)" +} + + +type record RTCP_PSFB_RPSI { + INT1 pb, // must be filled correctly, not handled by the encoder + INT1 payload_type, // includes the first bit + octetstring rpsi_string // includes the padding bits +} + type union RTCP_message{ RTCP_IE_SR sr, RTCP_IE_RR rr, RTCP_IE_SDES sdes, RTCP_IE_BYE bye, - RTCP_IE_APP app + RTCP_IE_APP app, + RTCP_IE_RTPFB rtpfb, + RTCP_IE_PSFB psfb } with { variant "TAG(sr, payload_type=200; rr, payload_type=201; sdes, payload_type=202; bye, payload_type=203; - app, payload_type=204)" + app, payload_type=204; + rtpfb, payload_type=205; + psfb, payload_type=206 + )" }; type record of RTCP_message PDU_RTCP with {variant ""}; -- GitLab