[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