Hi Nicola, I want to confirm my understanding first. Your proposal is to introduce a new 6P message, i.e. 6P ACK message, into a transaction, then the sequence of a original 2-way ADD transaction will be: (1) node A SF0 sets "adding TX cells" OPEN, and 6top layer sends ADD request to nodeB(2) node B 6top layer receives ADD Request, SF0 sets "adding RX cells" OPEN, and 6top layer sends ADD Response to node A(3) node A 6top layer receives ADD Response, SF0 adds TX cells and sets "adding TX cells" CLOSED, and 6top layer sends 6P ACK to node B(4) node B 6top layer receives 6P ACK, SF0 adds RX cells and sets "adding RX cells" CLOSE. Is my understanding correct? In addition, the proposed scheme will not need Timeout. Is it what you mean? But, I still think the scheme can not avoid a Timeout. Otherwise, how node A or node B can stop a Failed transaction if something happens? ThanksQin
On Saturday, October 29, 2016 2:18 PM, Nicola Accettura <nick.accett...@gmail.com> wrote: Diego, all, the timeout obviously must start when the ack is received. I agree in total. Though, you still need to get the timeout proportional to TXATTEMPTS and also to the maximum backoff window. Why? Call A the node that is requesting cells, and B the node that is asked for cells. Node A sends a request and gets a mac layer ack from B. A starts the timeout. B sends a packet, but it's lost. Sends another packet and it is lost... until the last attempt which is successful: B gets a link layer ack from A. So B allocates cells as RX. This confirms that the timeout should be proportional to TXATTEMPTS. And to the maxium backoff window. If there is only one shared cell, according to 'minimal', the timeout is proportional also to the slotframesize. If some implementation considers more than one shared cell per slotframe, the timeout can be smaller. At this point, I would say that the unity of measure of the timeout should be the number of executed shared cells, so that the timeout can be safely be proportional just to the product of TXATTEMPTS and the maximum backoff window. Yes, this causes to have a very long timeout, with possible (and actually frequent) desynchronizations. Especially when the network is forming, all nodes will ask for dedicated cells, many 6P packets will get lost. Keepalives will be triggered, but this worsen the situation. Everything is very very bad. Is that possible to have a shorter timeout? My answer is 'yes'. But we need something else: a 6P ACK. In fact, assume that A sent a request, B acked at MAC layer. Then B (maybe after many tries, if the responses have been lost, and this is possible in the 'minimal' shared cell due to collisions in big networks) is finally able to send an answer that is correctly received by A and A sends an ack at mac layer. B adds cells as RX and expects A to open the same cells as TX. 'Good!' one would say. Wrong! Node A has acknowledged at MAC layer the correct reception of the answer by B but will process the 6P packet after that. If the timeout is too short, that packet will be considered out of time. And the TX cells will not be allocated. With some RX cells open on node B. One can think of a timeout to garbage collect on B. But I'm not sure this would be very efficient, there's the probability of false positive. A 6P ack would make the 6P negotiation reliable. B can 'half' open the RX side after receiving the mac layer ack from A. A will open the TX side after sending the mac layer ack, it the 6P response was in time. It will send the 6P ack possibly in the newly created dedicated cell, so decongesting the shared cell of 'minimal'. If B receives the 6P ack, it will be sure that the RX side is open completely without possible impairment with the node A schedule knowledge. Instead, if the 6P response was out of time, A will not send any 6P ack, will not open the TX side. B will not receive any 6P ack within a timeout (that can be the same length as that starting on the A side after the reception of the mac layer ack to the request packet) and when that expires will delete the RX cells that were 'half' opened. With this, it is not possible to get suspicious cells allocations on the RX side. There's still the possibility that a TX side is open with the RX side not open. But for that, 6P or SF will manage a relocation. Think about the 6P packet as the third part of a 3-way-handshake. Of course, it's obvious that I'm strongly in favor of a 6P ack definition, more than having a big timeout. Does it make sense? Nicola 2016-10-29 18:44 GMT+02:00 Prof. Diego Dujovne <diego.dujo...@mail.udp.cl>: Dear all, Yesterday, we had a discussion about ticket #53 from the issue tracker, on the way to calculate the SF0 timeout value. There is current a proposal to calculate the timeout on SF0 between the arrival of the MAC-layer ACK for the request packet and the arrival of the response packet. In order to achieve this calculation, the 6P protocol must signal the arrival of the request ACK packet so as to start the timer countdown. Using this method, we avoid very long timeouts set to the max value of the number of TXATTEMPTS and the maximum backoff value. Graphically: SF |REQUEST| |timer-----|RESPONSE| ^ 6P |REQUEST| | |RESPONSE| MAC LAYER |REQUEST| |ACK| |RESPONSE| |ACK| I would like to know if your thougthts about this idea. Thank you. Regards, Diego -- DIEGO DUJOVNE Profesor Asociado Escuela de Informática y Telecomunicaciones Facultad de Ingeniería - Universidad Diego Portales - Chile www.ingenieria.udp.cl (56 2) 676 8125 ______________________________ _________________ 6tisch mailing list 6tisch@ietf.org https://www.ietf.org/mailman/ listinfo/6tisch _______________________________________________ 6tisch mailing list 6tisch@ietf.org https://www.ietf.org/mailman/listinfo/6tisch
_______________________________________________ 6tisch mailing list 6tisch@ietf.org https://www.ietf.org/mailman/listinfo/6tisch