Subject: [homenet] Inconsistencies between hnetd and the DNCP/HNCP drafts

From: Juliusz Chroboczek <[email-masked]>
Date: Tue, 30 Jun 2015 14:01:51 +0200

I've had two surprises trying to interoperate with hnetd.

1. nncp-06 Section 10 says that the Version is 0.  hnetd sends and expects 
a version field of 1.

2. The same section says the following about versioning:

    Each node [...] MUST ignore (except for DNCP synchronization purposes)
    any TLVs with a type greater than 32 published by nodes not also
    publishing an HNCP-Version TLV or publishing such a TLV with
    a different Version number.

However, this is not what hnetd does -- if there is no Version TLV or the 
Version is 0, it drops the node, which causes persistent desynchronisation 
of DNCP state, which causes repeated Trickle timer resets, which sucks.

(By the way, if you've read up to here, you're invited to help me choose 
the name of the second implementation of HNCP.  homenetd?  homed?  hncpd? 
uhncpd?  markus-s-folly-d?)

-- Juliusz

---

From: Steven Barth <[email-masked]>
Date: Tue, 30 Jun 2015 15:38:09 +0200

> 1. nncp-06 Section 10 says that the Version is 0.  hnetd sends and expects a version field of 1.
> 
> However, this is not what hnetd does -- if there is no Version TLV or the Version is 0, it drops the node, which causes persistent desynchronisation of DNCP state, which causes repeated Trickle timer resets, which sucks.

Good catch, I think we missed updating the software for these parts.
The behavior you've seen sounds like what historic version of the draft said.

I'll put it on our TODO.

Cheers,

Steven