maximum_sessions_exceeded (snat_main_t * sm, u32 thread_index)
{
if (pool_elts (sm->per_thread_data[thread_index].sessions) >=
- sm->max_translations)
+ sm->max_translations_per_thread)
return 1;
return 0;
a->as_u32 = clib_host_to_net_u32 (v);
}
+static_always_inline u16
+snat_random_port (u16 min, u16 max)
+{
+ snat_main_t *sm = &snat_main;
+ u32 rwide;
+ u16 r;
+
+ rwide = random_u32 (&sm->random_seed);
+ r = rwide & 0xFFFF;
+ if (r >= min && r <= max)
+ return r;
+
+ return min + (rwide % (max - min + 1));
+}
+
#endif /* __included_nat_inlines_h__ */
/*