Conversation
kaspar030
left a comment
There was a problem hiding this comment.
Nice PR so far, thanks!
sys/include/net/hdlc/hdr.h
Outdated
| * @brief HDLC types | ||
| */ | ||
| typedef enum { | ||
| HDLC_TYPE_RECEIVE_READY = 0, /**< ready receive type */ |
There was a problem hiding this comment.
I find the shifts quite confusing. Would you mind using hex values?
There was a problem hiding this comment.
I agree, this looks a bit weird here
sys/include/net/hdlc/hdr.h
Outdated
| /** | ||
| * @brief HDLC Supervisory Frames | ||
| */ | ||
| typedef struct __attribute__((packed)) { |
There was a problem hiding this comment.
Please don't use bitfields for wire formats. The actual order is implementation defined and thus cannot be relied upon.
smlng
left a comment
There was a problem hiding this comment.
some coding style issue, mostly missing spaces before parentheses, please adapt.
sys/include/net/hdlc/hdr.h
Outdated
| * @brief HDLC types | ||
| */ | ||
| typedef enum { | ||
| HDLC_TYPE_RECEIVE_READY = 0, /**< ready receive type */ |
There was a problem hiding this comment.
I agree, this looks a bit weird here
e1ec8b9 to
d097afa
Compare
d097afa to
6419d48
Compare
|
I've updated the source accordingly. |
|
ping @maxvankessel |
|
I like the approach of keeping HDLC and PPPoS in different layers as you did! I can ACK the fundamentals |
|
Some feedback from Vera++: |
| * +----------+----------+----------+ | ||
| * | Flag | Address | Control | | ||
| * | 01111110 | 11111111 | 00000011 | | ||
| * +----------+----------+----------+ |
There was a problem hiding this comment.
I'm unsure how this translates to the header defined below.
There was a problem hiding this comment.
The flag is not a part of the header but a delimiter of the packet
| * +----------+----------+----------+ | ||
| * | Flag | Address | Control | | ||
| * | 01111110 | 11111111 | 00000011 | | ||
| * +----------+----------+----------+ |
There was a problem hiding this comment.
For it to be rendered correctly as pixelart in the rendered doc, this needs to be indented some spaces (not sure how many, please check yourself with make doc)
|
Ping @maxvankessel |
|
ping @maxvankessel |
|
I will have a look at this. Is it still useful to implement this layer after all this time? |
We still want PPP support, so yes :-). |
|
Okay, give me some time to get back into it, it's been a while |
| static uint16_t fcstab[256] = { | ||
| 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, | ||
| 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, | ||
| 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, | ||
| 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, | ||
| 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, | ||
| 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, | ||
| 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, | ||
| 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, | ||
| 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, | ||
| 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, | ||
| 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, | ||
| 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, | ||
| 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, | ||
| 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, | ||
| 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, | ||
| 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, | ||
| 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, | ||
| 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, | ||
| 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, | ||
| 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, | ||
| 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, | ||
| 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, | ||
| 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, | ||
| 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, | ||
| 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, | ||
| 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, | ||
| 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, | ||
| 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, | ||
| 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, | ||
| 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, | ||
| 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, | ||
| 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 | ||
| }; |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
|
I would really like to move forward with this. Do you plan to continue working on this anytime? |
|
Hello @jia200x, |
I've created with help from @jia200x a HDLC layer (netdev layer), it's part of the PPP stack.
It should be layered on top of a PPPoS netdev layer, which handles incoming bytes and the ACCM map.
But it can also be layered on top of a generic modem driver (netdev).
This layers knows it's a netdev_layer.
I would like some feedback on the buffers is the hdlc_t, I don't like it this way.