laforge has posted comments on this change. ( 
https://gerrit.osmocom.org/c/libosmocore/+/18694 )

Change subject: gsm0808: fix endieness of call identifier
......................................................................


Patch Set 1: Code-Review-1

> Patch Set 1:
>
> > Patch Set 1:
> >
> > I'm not convinced (yet).  Normally, we pass values around in host byte 
> > order and only translate them to network byte order when generating 
> > messages.
> >
> > So why is that value already in netwokr byte order? Why can the caller not 
> > provide it in host byte order?
> >
> > Also, if we really want function arguments are not in native (host) byte 
> > order, I think it must clearly be documented in the doxygen part.
>
> Hmm. I have checked it multiple times now. Network byte order is big endien, 
> x86er is little endien. However 3GPP TS 48.008, section 3.2.2.105 wants the 
> least significant byte transmitted first. I think thats why the endieness 
> should already match the host byte order here.

Thanks for pointing this out.  That's of course quite unusual (probably a bug 
in the spec that was only discovered when it was too late and now everyone has 
to send little-endian uint32_t in a protocol that otherwise is always 
big-endian).

But even in that case your patch is wrong.  You need to do a portable 
conversion from host endianness (which can be either little or big) to 
little-endian.  This conversion is so uncommon that we don't even have a 
libosmocore function for it.  In the kernel there are macros like 
cpu_to_le32(x), but we don't have that.  I guess you have to #include 
osmocom/core/endian.h and then  do an #ifndef  OSMO_IS_LITTLE_ENDIAN #else 
#endif clause. If the host is not LITTLE_ENDIAN, you need to do an 
osmo_swab32(). If the host is little endian, then nothing.


--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8
Gerrit-Change-Number: 18694
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pma...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-CC: pespin <pes...@sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Jun 2020 20:52:25 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Reply via email to