[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"enc" method : pb in small SNDU



Hi all,

First, about encapsulation methods, apart from answers from Gorry,
I do feel a little bit alone :-( Is this because I try to smash already
opened doors, or because of holiday period, or ...

Nevertheless, I think there is a little flaw with the "enc" method, with
respect to small packets. Indeed, if, I take back from my previous mail
the example from case 3 :

   SNDU A is 200 bytes long
   SNDU B is 100 bytes long
   SNDU C is 60  bytes long

  +-----+------+------+-   -+------+
  | HDR | A000 | A001 | ... | A183 |
  +-----+------+------+-   -+------+
   PUSI =  1
   AFC  = 01

        <== Adapt Field ==>
+-----+----+----+----+----+------+-   -+------+------+-
| HDR |0x03|0x02|0x01|0x11| A184 | ... | A199 | B000 | ...
+-----+----+----+----+---*+------+-   -+------+*-----+-
   PUSI =  1             *                     *
   AFC  = 11             ***********************
   AF.ptr = 17
                                                  <---  4  --->
                                                 stuffing  bytes
                    -+------+------+-   -+------+----+-   -+----+
                 ... | B099 | C000 | ... | C059 |0xff| ... |0xff|
                    -+------+------+-   -+------+----+-   -+----+


In the second TS cell,  PUSI = 1 helps knowing a new SNDU starts,
the AF helps finding its start : so SNDU-B is found.
well, SNDu-B has its size included, so finding the start of SDNU-C
is feasible (keeping apart any alignement stuff), but I see nothing
that tells the receiver that
  - a SNDU-C is to be found
  - there is no SNDU-D starting after SNDU-C

SOLUTION :
To do that, the solution proposed in the "ule" method is applicable,
hence having and "end" indicator 0x00 0x00.
This would lead to
        <== Adapt Field ==>
+-----+----+----+----+----+------+-   -+------+------+-
| HDR |0x03|0x02|0x01|0x11| A184 | ... | A199 | B000 | ...
+-----+----+----+----+---*+------+-   -+------+*-----+-
   PUSI =  1             *                     *
   AFC  = 11             ***********************
   AF.ptr = 17
                                                       <-- 2  -->
                                                        stuffing  bytes
                 -+------+------+-   -+------+----+----+----+----+
              ... | B099 | C000 | ... | C059 |0x00|0x00|0xff|0xff|
                 -+------+------+-   -+------+----+----+----+----+
                                             /          \
                                             end-indicator

This would also need, for a simpliest implementation purpose, and
may remove some nasty case I haven't seen yet, to adopt the same
resolution as in "ule" method:
  "If the TS Packet carrying the final part of a SNDU has either zero
  or one byte of unused payload, the encapsulator will start
  transmission of the next SNDU in a new TS Packet. For the case of
  one remaining byte this MUST be assigned the value of 0x00, but this
  value MUST be ignored at the receiver."
note that is uncenessary (for it is implicitly done) if the 4-bytes
alignement is required as I suggested.


Regards.
Alain.
--
Alain RITOUX
Tel +33-1-39-30-92-32
Fax +33-1-39-30-92-11
visit our web http://www.6wind.com