nat: improve nat44-ed outside address distribution 21/38521/3
authorVladislav Grishenko <themiron@yandex-team.ru>
Thu, 16 Mar 2023 14:31:00 +0000 (19:31 +0500)
committerOle Tr�an <otroan@employees.org>
Wed, 6 Sep 2023 16:44:15 +0000 (16:44 +0000)
commit579a6fb89baf325d96fe49bc52e9fec5f98a780c
tree7d31d8dfef18bd5e6b185518960c3e7d6f75e87f
parenta181eaa59bb2ff2784376918e95bbf92e5340db1
nat: improve nat44-ed outside address distribution

Use client address hash to pick the first outside address
instead of just address high octet, becasue it may denegerate
into stable 10/172/192, depending on nat address count.

Fix outside address distribution test to acually test the
distribution, not the algo, so previous distribution will
fail with 65 nat addresses and 100 clients:

FAIL: Outside address distribution based on source address
Traceback (most recent call last):
  File ".../test/test_nat44_ed.py", line 2048, in test_outside_address_distribution
    msg="Bad outside address distribution")
AssertionError: 156.25 not less than 0.33 : Bad outside address distribution

Type: improvement
Change-Id: I604b1294422f20d211db5614c47559557a78a193
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
src/plugins/nat/nat44-ed/nat44_ed_in2out.c
test/test_nat44_ed.py