# Gr-ais: bit unstuffing bug?

**URL:** <https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083>\
**Category:** GNU Radio\
**Created:** [August 10, 2012, 8:48pm UTC](https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083 "2012-08-10T20:48:23Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [August 10, 2012, 8:48pm UTC](https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083/1 "2012-08-10T20:48:23Z")

</div>

Hi all, Nick,

In gr-ais. the bit un-stuffing is done before the de-framing, shouldn’t  
it be done after instead?

Chris

–  
Christian G.,  
Embedded systems engineer.  
Techworks Marine  
1 Harbour road  
Dun Laoghaire  
Co. Dublin  
Ireland  
Tel: + 353 (0) 1 236 5990  
Web: [http://www.techworks.ie/](http://www.techworks.ie/)

---

<div class="post-metadata">

**Author:** ![christiang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/77aa72/32.png) [@christiang](https://www.ruby-forum.com/u/christiang)\
**Post date:** [August 10, 2012, 8:56pm UTC](https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083/2 "2012-08-10T20:56:34Z")

</div>

You can do it either way since unstuffing will never generate a valid  
HDLC  
framing code (“01111110”). Unstuffing before the deframing correlators  
means my tags’ sample numbers don’t have to be modified for the bits  
inserted by the unstuffing operation.

–n

---

<div class="post-metadata">

**Author:** ![christiang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/77aa72/32.png) [@christiang](https://www.ruby-forum.com/u/christiang)\
**Post date:** [August 10, 2012, 9:31pm UTC](https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083/3 "2012-08-10T21:31:03Z")

</div>

On 10/08/12 19:55, Nick F. wrote:

> You can do it either way since unstuffing will never generate a valid  
> HDLC framing code (“01111110”). Unstuffing before the deframing

For what i understand, bit stuffing never generates framing code (that’s  
the whole point), but the bit _un_stuffing can and will if the payload  
contains itself a byte which as the same value as the framing code.

Actually, while dumping data from ais\_parse.cc, I found that gr-ais  
unstuffing code do generate framing codes. that has fooled  
get\_tags\_in\_range (a stop was found because the AIS payload had a  
01111110 in it).  
Well, I think I found, I’m still scratching my head…

> correlators means my tags’ sample numbers don’t have to be modified for  
> the bits inserted by the unstuffing operation.

Yes, I see the point. But you could unstuff inline, in place of the  
memcpy, just before calling parse().

Chris

> ```
> Ireland
> Tel: + 353 (0) 1 236 5990 <tel:%2B%20353%20%280%29%201%20236%205990>
> Web: http://www.techworks.ie/
> 
> _________________________________________________
> Discuss-gnuradio mailing list
> removed_email_address@domain.invalid <mailto:removed_email_address@domain.invalid>
> https://lists.gnu.org/mailman/__listinfo/discuss-gnuradio
> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
> 
> ```

–  
Christian G.,  
Embedded systems engineer.  
Techworks Marine  
1 Harbour road  
Dun Laoghaire  
Co. Dublin  
Ireland  
Tel: + 353 (0) 1 236 5990  
Web: [http://www.techworks.ie/](http://www.techworks.ie/)

---

<div class="post-metadata">

**Author:** ![christiang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/77aa72/32.png) [@christiang](https://www.ruby-forum.com/u/christiang)\
**Post date:** [August 10, 2012, 9:45pm UTC](https://www.ruby-forum.com/t/gr-ais-bit-unstuffing-bug/222083/4 "2012-08-10T21:45:04Z")

</div>

Hmm, you might be right about that. I’ll take another look.

–n
