Hi Yatch,

thanks for your observation. I think that the behaviour is correct as
described in the text. When node B power cycles loses the last seen seqNum.
Its stored value is then 0 and hence when it receives the request responds
with the error and with the stored last seen seqnum (0).

does it make sense?
regards
Xavi

Missatge de Yasuyuki Tanaka <yasuyuki.tan...@inria.fr> del dia dv., 19
d’abr. 2019 a les 18:05:

> Hi,
>
> I came across a question in RFC8480 (6P), which looks like an error to
> me... Can anybody help? This is about the SeqNum field of the 6P header.
>
> Section 3.2.2 defines SeqNum like this:
>
> [https://tools.ietf.org/html/rfc8480#section-3.2.2]
> >   SeqNum:  The sequence number associated with the 6P Transaction.
> >         Used to match the 6P Request, 6P Response, and 6P Confirmation
> >         of the same 6P Transaction.
>
> So, basically, a response and a confirmation have the same SeqNum
> value as the corresponding request. This is very normal.
>
> However, Section 3.4.6.2 says, if a node detect schedule inconsistency
> with a received request, the node does a different thing. A response
> in this case has a different SeqNum value from the corresponding
> request. This is strange...
>
> [https://tools.ietf.org/html/rfc8480#section-3.4.6.2]
> >   If the inconsistency is detected during a 6P Transaction (Figure 31),
> >   the node that has detected it MUST send back a 6P Response or 6P
> >   Confirmation with an error code of RC_ERR_SEQNUM.  In this 6P
> >   Response or 6P Confirmation, the SeqNum field MUST be set to the
> >   value of the sender of the message (0 in the example in Figure 31).
>
> In Figure 31, Node A receives 6P Response (SeqNum=0, RC_ERR_SEQNUM) in
> the last part of the message sequence. But, according to the
> definition by Section 3.2.2, Node A doesn't consider the response to
> be part of the transaction initiated by 6P Request (SeqNum=88),
>
> [https://tools.ietf.org/html/rfc8480#section-3.4.6.2]
> >           +----------+                           +----------+
> >           |  Node A  |                           |  Node B  |
> >           +----+-----+                           +-----+----+
> >      SeqNum=87 |                                       | SeqNum=87
> >                |                                       |
> >                | 6P Request  (SeqNum=87)               |
> >                |-------------------------------------->|
> >                |                                L2 ACK |
> >                |<- - - - - - - - - - - - - - - - - - - |
> >                |                                       |
> >                | 6P Response  (SeqNum=87)              |
> >                |<--------------------------------------|
> >                | L2 ACK                                |
> >                | - - - - - - - - - - - - - - - - - - ->|
> >                |                                     ==== power-cycle
> >                |                                       |
> >      SeqNum=88 |                                       | SeqNum=0
> >                |                                       |
> >                | 6P Request (SeqNum=88)                |
> >                |-------------------------------------->| Inconsistency
> >                |                                L2 ACK | detected
> >                |<- - - - - - - - - - - - - - - - - - - |
> >                |                                       |
> >                | 6P Response (SeqNum=0, RC_ERR_SEQNUM) |
> >                |<--------------------------------------|
> >                | L2 ACK                                |
> >                | - - - - - - - - - - - - - - - - - - ->|
> >
> >         Figure 31: Example of Inconsistency Because Node B Resets
> >                           (Detected by Node B)
>
> If this is an error, I'm going to file an errata entry. Otherwise, I'd
> like to know why Node B in Figure 31 MUST set 0 to SeqNum for the 6P
> Response having RC_ERR_SEQNUM. Node A becomes aware of schedule
> inconsistency anyway, seeing RC_ERR_SEQNUM in the response.
>
> By the way, the 5th paragraph in Section 3.4.6 supports Section
> 3.2.2. The response in an example of the paragraph has the same SeqNum
> value as the response, which is 0. This is the same case as explained
> with Figure 32.
>
> [https://tools.ietf.org/html/rfc8480#section-3.4.6]
> >   When node B receives a 6P Request from node A with SeqNum equal to 0,
> >   it checks the stored SeqNum for A.  If A is a new neighbor, the
> >   stored SeqNum in B will be 0.  The transaction can continue.  If the
> >   stored SeqNum for A in B is different than 0, a potential
> >   inconsistency is detected.  In this case, B MUST return RC_ERR_SEQNUM
> >   with SeqNum=0.  The SF of node A MAY decide what to do next, as
> >   described in Section 3.4.6.2.
>
> Or, am I just confused...?
>
> Best,
> Yatch
>
> _______________________________________________
> 6tisch mailing list
> 6tisch@ietf.org
> https://www.ietf.org/mailman/listinfo/6tisch
>


-- 
Dr. Xavier Vilajosana
Wireless Networks Lab

*Internet Interdisciplinary Institute (IN3)Professor*
(+34) 646 633 681
xvilajos...@uoc.edu <usu...@uoc.edu>
http://xvilajosana.org
http://wine.rdi.uoc.edu
Parc Mediterrani de la Tecnologia
Av Carl Friedrich Gauss 5, B3 Building
08860 Castelldefels (Barcelona). Catalonia. Spain
[image: Universitat Oberta de Catalunya]
­
_______________________________________________
6tisch mailing list
6tisch@ietf.org
https://www.ietf.org/mailman/listinfo/6tisch

Reply via email to