wiki:rtcp

Version 2 (modified by ivano, 11 months ago) (diff)

BUGFIX in rtcp

Running NetPDL parser failed a:
0, PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/idn.ini on line 1 in Unknown on line 0 /usr/local/netpdl/parser.php

NetPDL dissector..........VALIDATED !!

Original XML source
  1. <protocol name="rtcp" longname="RTCP (Real Time Control Protocol)" showsumtemplate="rtcp">
  2.   <!-- We should check that 'version' is equal to '2' -->
  3.   <format>
  4.     <fields>
  5.       <loop type="size" expr="$packetlength - $currentoffset">
  6.         <switch expr="buf2int($packet[$currentoffset+1:1])">
  7.          
  8.           <case value="200">  <includeblk name="sr"/>   </case>
  9.           <case value="201">  <includeblk name="rr"/>   </case>
  10.           <case value="202">  <includeblk name="sdes"/> </case>
  11.           <case value="203">  <includeblk name="bye"/>  </case>
  12.           <case value="204">  <includeblk name="app"/>  </case>
  13.  
  14.           <!-- Unknown option -->
  15.           <default>
  16.             <block name="unknown" longname="Unknown Option">
  17.               <field type="bit" name="ver" longname="Version" mask="0xC0" size="1" showtemplate="FieldDec"/>
  18.               <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  19.               <field type="bit" name="st" longname="Subtype" mask="0x1F" size="1" showtemplate="FieldDec"/>
  20.               <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  21.               <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  22.               <field type="variable" name="srinfo" longname="Sender Information" expr="buf2int(length) * 4" showtemplate="Field4BytesHex"/>
  23.             </block>
  24.           </default>
  25.         </switch>
  26.       </loop>
  27.     </fields>
  28.  
  29.     <block name="sr" longname="Sender Report (SR)">
  30.       <field type="bit" name="ver" longname="Version" description="Always set to 2" mask="0xC0" size="1" showtemplate="FieldDec"/>
  31.       <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  32.       <field type="bit" name="rc" longname="Reception Report Count" mask="0x1F" size="1" showtemplate="FieldDec"/>
  33.       <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  34.       <!-- Warning: 'length" keeps the nuber of words (32bit) - 1 -->
  35.       <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  36.       <field type="fixed" name="ssrc" longname="SSRC" description="Sync Source ID" size="2" showtemplate="FieldDec"/>
  37.       <field type="variable" name="srinfo" longname="Sender Information" expr="(buf2int(length) + 1) * 4" showtemplate="Field4BytesHex"/>
  38.     </block>
  39.  
  40.     <block name="rr" longname="Receiver Report (RR)">
  41.       <field type="bit" name="ver" longname="Version" description="Always set to 2" mask="0xC0" size="1" showtemplate="FieldDec"/>
  42.       <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  43.       <field type="bit" name="rc" longname="Reception Report Count" mask="0x1F" size="1" showtemplate="FieldDec"/>
  44.       <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  45.       <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  46.       <field type="fixed" name="ssrc" longname="Packet Sender SSRC" size="4" showtemplate="FieldHex"/>
  47.  
  48.       <loop type="size" expr="(buf2int(length) - 1) * 4">
  49.         <loop type="times2repeat" expr="buf2int(rc)">
  50.           <block name="ritem" longname="Receiver Item">
  51.             <field type="fixed" name="ssrc" longname="Source SSRC" size="4" showtemplate="FieldHex"/>
  52.             <field type="fixed" name="flost" longname="Fraction of Lost Packets " size="1" showtemplate="FieldHex"/>
  53.             <field type="fixed" name="clost" longname="Cumulative Number of Lost Packets" size="3" showtemplate="FieldHex"/>
  54.             <field type="fixed" name="highseq" longname="Highest Received Sequence Number" size="4" showtemplate="FieldHex"/>
  55.             <field type="fixed" name="ijitter" longname="Interarrival Jitter" size="4" showtemplate="FieldDec"/>
  56.             <field type="fixed" name="lastsr" longname="Last Sender Report (LSR)" size="4" showtemplate="FieldHex"/>
  57.             <field type="fixed" name="delaylastsr" longname="Delat Since Last Sender Report (DLSR)" size="4" showtemplate="FieldDec"/>     
  58.           </block>   
  59.         </loop>
  60.         <field type="variable" name="profile_ext" longname="Profile-specific Extensions" expr="(buf2int(length) - 1) * 4 - (buf2int(rc) * 24)" showtemplate="Field4BytesHex"/>
  61.       </loop>
  62.     </block>
  63.  
  64.     <block name="sdes" longname="Source Description (SDES)">
  65.       <field type="bit" name="ver" longname="Version" description="Always set to 2" mask="0xC0" size="1" showtemplate="FieldDec"/>
  66.       <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  67.       <field type="bit" name="rc" longname="Reception Report Count" mask="0x1F" size="1" showtemplate="FieldDec"/>
  68.       <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  69.       <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  70.  
  71.       <loop type="times2repeat" expr="buf2int(rc)">
  72.  
  73.         <block name="sdesitem" longname="Source Description Item">
  74.           <field type="fixed" name="ssrc" longname="SSRC" size="4" showtemplate="FieldHex"/>
  75.           <loop type="while" expr="1">
  76.  
  77.             <switch expr="buf2int($packet[$currentoffset:1])">
  78.               <case value="0">
  79.                 <block name="eoitems" longname="End of items">
  80.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  81.                   <field type="padding" name="sdespad" longname="padding" align="4" showtemplate="FieldHex"/>
  82.                   <loopctrl type="break"/>
  83.                 </block>
  84.               </case>
  85.               <case value="1">
  86.                 <block name="cname" longname="CNAME">
  87.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  88.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  89.                   <field type="variable" name="sdesuser" longname="User and Domain name" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  90.                 </block>
  91.               </case>
  92.               <case value="2">
  93.                 <block name="name" longname="User name">
  94.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  95.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  96.                   <field type="variable" name="sdesname" longname="Common name of source" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  97.                 </block>
  98.               </case>
  99.               <case value="3">
  100.                 <block name="email" longname="Email">
  101.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  102.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  103.                   <field type="variable" name="sdesemail" longname="Email address of source" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  104.                 </block>
  105.               </case>
  106.               <case value="4">
  107.                 <block name="phone" longname="Phone number">
  108.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  109.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  110.                   <field type="variable" name="sdesphone" longname="Phone Number of source" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  111.                 </block>
  112.               </case>
  113.               <case value="5">
  114.                 <block name="location" longname="Geographic user location">
  115.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  116.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  117.                   <field type="variable" name="sdesloc" longname="Geographic location of site" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  118.                 </block>
  119.               </case>
  120.               <case value="6">
  121.                 <block name="tool" longname="Application or tool name">
  122.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  123.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  124.                   <field type="variable" name="sdestool" longname="Name/version of source application" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  125.                 </block>
  126.               </case>
  127.               <case value="7">
  128.                 <block name="note" longname="Notice or Status">
  129.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  130.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  131.                   <field type="variable" name="sdesnote" longname="Note about the source" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  132.                 </block>
  133.               </case>
  134.               <case value="8">
  135.                 <block name="priv" longname="Private extension">
  136.                   <field type="fixed" name="sdestype" longname="Type" size="1" showtemplate="rtcp.sdestype"/>
  137.                   <field type="fixed" name="sdeslength" longname="Length" size="1" showtemplate="FieldDec"/>
  138.                   <field type="fixed" name="sdespreflength" longname="Prefix Length" size="1" showtemplate="FieldDec"/>
  139.                   <field type="variable" name="sdesprefstring" longname="Prefix string" expr="buf2int(sdespreflength)" showtemplate="FieldAscii"/>
  140.                   <field type="variable" name="sdesvaluestring" longname="Value string" expr="buf2int(sdeslength)" showtemplate="FieldAscii"/>
  141.                 </block>
  142.               </case>
  143.               <default>
  144.                   <loopctrl type="break"/>
  145.               </default>
  146.             </switch>
  147.           </loop>
  148.         </block>   
  149.       </loop>
  150.     </block>
  151.  
  152.     <block name="bye" longname="Goodbye (BYE)">
  153.       <field type="bit" name="ver" longname="Version" description="Always set to 2" mask="0xC0" size="1" showtemplate="FieldDec"/>
  154.       <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  155.       <field type="bit" name="rc" longname="Reception Report Count" mask="0x1F" size="1" showtemplate="FieldDec"/>
  156.       <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  157.       <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  158.       <field type="variable" name="byeinfo" longname="Bye Information" expr="(buf2int(length) + 1) * 4" showtemplate="Field4BytesHex"/>
  159.     </block>
  160.  
  161.     <block name="app" longname="Application Defined (APP)">
  162.       <field type="bit" name="ver" longname="Version" description="Always set to 2" mask="0xC0" size="1" showtemplate="FieldDec"/>
  163.       <field type="bit" name="pad" longname="Padding" description="Set to enable padding" mask="0x20" size="1" showtemplate="FieldBin"/>
  164.       <field type="bit" name="rc" longname="Reception Report Count" mask="0x1F" size="1" showtemplate="FieldDec"/>
  165.       <field type="fixed" name="type" longname="Type" size="1" showtemplate="rtcp.type"/>
  166.       <field type="fixed" name="length" longname="Length" size="2" showtemplate="FieldDec"/>
  167.       <field type="fixed" name="ssrc" longname="SSRC" description="Sync Source ID" size="2" showtemplate="FieldDec"/>
  168.       <field type="variable" name="appinfo" longname="APP Information" expr="(buf2int(length) + 1) * 4" showtemplate="Field4BytesHex"/>
  169.     </block>
  170.  
  171.   </format>
  172.  
  173.   <visualization>
  174.     <showsumtemplate name="rtcp">
  175.       <section name="next"/>
  176.       <text value="RTCP"/>
  177.     </showsumtemplate>
  178.  
  179.     <showtemplate name="rtcp.type" showtype="dec">
  180.       <showmap>
  181.         <switch expr="buf2int(this)">
  182.           <case value="200" show="Sender Report">     </case>
  183.           <case value="201" show="Receiver Report">   </case>
  184.           <case value="202" show="Sender Description">  </case>
  185.           <case value="203" show="Bye">         </case>
  186.           <case value="204" show="Application Defined"> </case>
  187.           <default show="Error in RTCP.Type: value not recognized">   </default>
  188.         </switch>
  189.       </showmap>
  190.     </showtemplate>
  191.  
  192.     <showtemplate name="rtcp.sdestype" showtype="dec">
  193.       <showmap>
  194.         <switch expr="buf2int(this)">
  195.           <case value="0" show="END">   </case>
  196.           <case value="1" show="CNAME"> </case>
  197.           <case value="2" show="NAME">  </case>
  198.           <case value="3" show="EMAIL"> </case>
  199.           <case value="4" show="PHONE"> </case>
  200.           <case value="5" show="LOC">   </case>
  201.           <case value="6" show="TOOL">  </case>
  202.           <case value="7" show="NOTE">  </case>
  203.           <case value="7" show="PRIV">  </case>
  204.           <default show="Error in RTCP.SdesType: value not recognized">   </default>
  205.         </switch>
  206.       </showmap>
  207.     </showtemplate>
  208.   </visualization>
  209. </protocol>
  210.  
Processing time: 0.104