Yes, it's fine. -- Michał Lowas-Rzechonek Lambda Team Leader Silvair Jasnogórska 44 31-358 Krakow POLAND http://www.silvair.com pon., 27 maj 2019 o 20:14 Gix, Brian <brian.gix@xxxxxxxxx> napisał(a): > > Hi Jakub and Michal, > > If you guys are OK with this, this is the version of the patch on long MICs and segment count I will be > applying. > > On Thu, 2019-05-23 at 10:53 -0700, Brian Gix wrote: > > From: Jakub Witowski <jakub.witowski@xxxxxxxxxxx> > > > > Contrary to the comment, implementation used a 8-byte MIC even if this > > generated an additional segment. > > --- > > mesh/model.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/mesh/model.c b/mesh/model.c > > index 034d54496..90bb62db8 100644 > > --- a/mesh/model.c > > +++ b/mesh/model.c > > @@ -40,6 +40,9 @@ > > #include "mesh/util.h" > > #include "mesh/model.h" > > > > +/* Divide and round to ceiling (up) to calculate segment count */ > > +#define CEILDIV(val, div) (((val) + (div) - 1) / (div)) > > + > > struct mesh_model { > > const struct mesh_model_ops *cbs; > > void *user_data; > > @@ -451,7 +454,7 @@ static bool msg_send(struct mesh_node *node, bool credential, uint16_t src, > > > > /* Use large MIC if it doesn't affect segmentation */ > > if (msg_len > 11 && msg_len <= 376) { > > - if ((out_len / 12) == ((out_len + 4) / 12)) { > > + if (CEILDIV(out_len, 12) == CEILDIV(out_len + 4, 12)) { > > szmic = true; > > out_len = msg_len + sizeof(uint64_t); > > }