> > On 1/4/2019 1:55 AM, Konstantin Ananyev wrote: > > /* process ipv4 packets */ > > - inbound_sp_sa(ctx->sp4_ctx, ctx->sa_ctx, &trf.ip4, 0); > > - route4_pkts(qconf->rt4_ctx, trf.ip4.pkts, trf.ip4.num); > > + if (trf.ip4.num != 0) { > > + inbound_sp_sa(ctx->sp4_ctx, ctx->sa_ctx, &trf.ip4, 0); > > + route4_pkts(qconf->rt4_ctx, trf.ip4.pkts, trf.ip4.num); > > + } > > > > /* process ipv6 packets */ > > - inbound_sp_sa(ctx->sp6_ctx, ctx->sa_ctx, &trf.ip6, 0); > > - route6_pkts(qconf->rt6_ctx, trf.ip6.pkts, trf.ip6.num); > > + if (trf.ip6.num != 0) { > > + inbound_sp_sa(ctx->sp6_ctx, ctx->sa_ctx, &trf.ip6, 0); > > + route6_pkts(qconf->rt6_ctx, trf.ip6.pkts, trf.ip6.num); > > + } > One more thing. > Why do you need these changes. There are multiple places where this > change is done. > > route6_pkts and route4_pkts already checks that internally for 0 pkts. > inbound_sp_sa also does that. > These are getting called from multiple places. So it is better we add this > check inside the function itself instead of outside it.
You right, these checks are not necessary here. I put these extra checks to avoid unnecessary calls - there is no guarantee that both route_pkts() and inbound_sp_sa() will always be inlined by the compiler (they are not that small). Konstantin