diff --git a/.version b/.version index 0d1a09f2e0..dffe5b5618 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2018.06 +2018.09 diff --git a/src/README.md b/src/README.md index 02876789c5..80c1c60613 100644 --- a/src/README.md +++ b/src/README.md @@ -258,6 +258,10 @@ following keys are recognized: printed. +— Function **engine.stop** + +Stop all apps in the engine by loading an empty configuration. + — Function **engine.now** Returns monotonic time in seconds as a floating point number. Suitable diff --git a/src/apps/bridge/README.md b/src/apps/bridge/README.md index 4788365f22..090c84c5c0 100644 --- a/src/apps/bridge/README.md +++ b/src/apps/bridge/README.md @@ -9,7 +9,7 @@ arriving on a free input port may be forwarded to all other output ports. Packets arriving on an input port that belongs to a split-horizon group are never forwarded to any output port belonging to the same split-horizon group. There are two `bridge` implementations available: -`apps.bridge.flooding` and apps.bridge.learning`. +`apps.bridge.flooding` and `apps.bridge.learning`. DIAGRAM: bridge +----------+ diff --git a/src/apps/example/asm.dasl b/src/apps/example/asm.dasl index f221af735e..34dd830ad1 100644 --- a/src/apps/example/asm.dasl +++ b/src/apps/example/asm.dasl @@ -19,7 +19,8 @@ local asm_status = ffi.new("uint32_t[1]") |.arch x64 |.actionlist actions local Dst = dasm.new(actions) -| mov dword [asm_status], 0xdeadbeef +| mov64 rax, asm_status +| mov dword [rax], 0xdeadbeef | ret code = Dst:build() -- assign to 'code' to avoid machine code being GC'd fptr = ffi.cast("void(*)()", code) diff --git a/src/apps/ipfix/README.md b/src/apps/ipfix/README.md index 7b13341feb..be07a179c4 100644 --- a/src/apps/ipfix/README.md +++ b/src/apps/ipfix/README.md @@ -10,7 +10,9 @@ included). The exporter can produce output in either the standard RFC DIAGRAM: IPFIX +-----------+ + | | input ---->* IPFIX *----> output + | | +-----------+ See the `snabb ipfix probe` command-line interface for a program built diff --git a/src/apps/vhost/vhost_user.h b/src/apps/vhost/vhost_user.h index 899dc85e15..f0ac325b5d 100644 --- a/src/apps/vhost/vhost_user.h +++ b/src/apps/vhost/vhost_user.h @@ -21,6 +21,10 @@ enum { VHOST_USER_SET_VRING_KICK = 12, VHOST_USER_SET_VRING_CALL = 13, VHOST_USER_SET_VRING_ERR = 14, + VHOST_USER_GET_PROTOCOL_FEATURES = 15, + VHOST_USER_SET_PROTOCOL_FEATURES = 16, + VHOST_USER_GET_QUEUE_NUM = 17, + VHOST_USER_SET_VRING_ENABLE = 18, VHOST_USER_MAX }; diff --git a/src/apps/vhost/vhost_user.lua b/src/apps/vhost/vhost_user.lua index 72df66cba2..3136aeddc3 100644 --- a/src/apps/vhost/vhost_user.lua +++ b/src/apps/vhost/vhost_user.lua @@ -111,21 +111,25 @@ end -- Table of request code -> name of handler method handler_names = { - [C.VHOST_USER_NONE] = 'none', - [C.VHOST_USER_GET_FEATURES] = 'get_features', - [C.VHOST_USER_SET_FEATURES] = 'set_features', - [C.VHOST_USER_SET_OWNER] = 'set_owner', - [C.VHOST_USER_RESET_OWNER] = 'reset_owner', - [C.VHOST_USER_SET_MEM_TABLE] = 'set_mem_table', - [C.VHOST_USER_SET_LOG_BASE] = 'set_log_base', - [C.VHOST_USER_SET_LOG_FD] = 'set_log_fd', - [C.VHOST_USER_SET_VRING_NUM] = 'set_vring_num', - [C.VHOST_USER_SET_VRING_ADDR] = 'set_vring_addr', - [C.VHOST_USER_SET_VRING_BASE] = 'set_vring_base', - [C.VHOST_USER_GET_VRING_BASE] = 'get_vring_base', - [C.VHOST_USER_SET_VRING_KICK] = 'set_vring_kick', - [C.VHOST_USER_SET_VRING_CALL] = 'set_vring_call', - [C.VHOST_USER_SET_VRING_ERR] = 'set_vring_err' + [C.VHOST_USER_NONE] = 'none', + [C.VHOST_USER_GET_FEATURES] = 'get_features', + [C.VHOST_USER_SET_FEATURES] = 'set_features', + [C.VHOST_USER_SET_OWNER] = 'set_owner', + [C.VHOST_USER_RESET_OWNER] = 'reset_owner', + [C.VHOST_USER_SET_MEM_TABLE] = 'set_mem_table', + [C.VHOST_USER_SET_LOG_BASE] = 'set_log_base', + [C.VHOST_USER_SET_LOG_FD] = 'set_log_fd', + [C.VHOST_USER_SET_VRING_NUM] = 'set_vring_num', + [C.VHOST_USER_SET_VRING_ADDR] = 'set_vring_addr', + [C.VHOST_USER_SET_VRING_BASE] = 'set_vring_base', + [C.VHOST_USER_GET_VRING_BASE] = 'get_vring_base', + [C.VHOST_USER_SET_VRING_KICK] = 'set_vring_kick', + [C.VHOST_USER_SET_VRING_CALL] = 'set_vring_call', + [C.VHOST_USER_SET_VRING_ERR] = 'set_vring_err', + [C.VHOST_USER_GET_PROTOCOL_FEATURES] = 'get_protocol_features', + [C.VHOST_USER_SET_PROTOCOL_FEATURES] = 'set_protocol_features', + [C.VHOST_USER_GET_QUEUE_NUM] = 'get_queue_num', + [C.VHOST_USER_SET_VRING_ENABLE] = 'set_vring_enable' } -- Process all vhost_user requests from QEMU. @@ -178,6 +182,26 @@ function VhostUser:set_features (msg) self.dev:set_features(features) end +function VhostUser:get_protocol_features (msg) + msg.u64 = 0ULL -- no extensions supported for now + msg.size = ffi.sizeof("uint64_t") + self:reply(msg) +end + +function VhostUser:set_protocol_features (msg) + -- ignore protocol features for now (FIXME) +end + +function VhostUser:get_queue_num (msg) + -- ignore for now (FIXME) +end + +-- Handle VHOST_USER_SET_VRING_ENABLE, which explicitly enables/disables the +-- ring (this msg is only used if VHOST_USER_F_PROTOCOL_FEATURES is used) +function VhostUser:set_vring_enable (msg) + self.vhost_ready = msg.u64 ~= 0 +end + -- Feature cache: A kludge to be compatible with a "QEMU reconnect" patch. -- -- QEMU upstream (circa 2015) does not support the vhost-user device diff --git a/src/core/app.lua b/src/core/app.lua index c7fdf75a35..da220b1e59 100644 --- a/src/core/app.lua +++ b/src/core/app.lua @@ -137,6 +137,12 @@ function configure (new_config) counter.add(configs) end + +-- Stop all apps by loading an empty configuration. +function stop () + configure(config.new()) +end + -- Removes the claim on a name, freeing it for other programs. -- -- This relinquish a claim on a name if one exists. if the name does not @@ -724,6 +730,11 @@ function selftest () main({duration = 4, report = {showapps = true}}) assert(app_table.app3 ~= orig_app3) -- should be restarted + -- Check engine stop + assert(not lib.equal(app_table, {})) + engine.stop() + assert(lib.equal(app_table, {})) + -- Check one can't unclaim a name if no name is claimed. assert(not pcall(unclaim_name)) diff --git a/src/core/lib.lua b/src/core/lib.lua index 047ad92c89..550b90e9ab 100644 --- a/src/core/lib.lua +++ b/src/core/lib.lua @@ -457,84 +457,8 @@ function root_check (message) end end --- Simple token bucket for rate-limiting of events. A token bucket is --- created through --- --- local tb = token_bucket_new({ rate = }) --- --- where is the maximum allowed rate in Hz, which defaults to --- 10. Conceptually, tokens are added to the bucket each --- second and the bucket can hold no more than tokens but at --- least one. --- - -local token_bucket = {} -token_bucket.mt = { __index = token_bucket } -token_bucket.default = { rate = 10 } -function token_bucket_new (config) - local config = config or token_bucket.default - local tb = setmetatable({}, token_bucket.mt) - tb:rate(config.rate or token_bucket.default.rate) - tb._tstamp = C.get_monotonic_time() - return tb -end - --- The rate can be set with the rate() method at any time, which fills --- the token bucket an also returns the previous value. If called --- with a nil argument, returns the currently configured rate. -function token_bucket:rate (rate) - if rate ~= nil then - local old_rate = self._rate - self._rate = rate - self._max_tokens = math.max(rate, 1) - self._tokens = self._max_tokens - return old_rate - end - return self._rate -end - -function token_bucket:_update (tokens) - local now = C.get_monotonic_time() - local tokens = math.min(self._max_tokens, tokens + self._rate*(now-self._tstamp)) - self._tstamp = now - return tokens -end - --- The take() method tries to remove tokens from the bucket. If --- enough tokens are available, they are subtracted from the bucket --- and a true value is returned. Otherwise, the bucket remains --- unchanged and a false value is returned. For efficiency, the --- tokens accumulated since the last call to take() or can_take() are --- only added if the request can not be fulfilled by the state of the --- bucket when the method is called. -function token_bucket:take (n) - local n = n or 1 - local result = false - local tokens = self._tokens - if n > tokens then - tokens = self:_update(tokens) - end - if n <= tokens then - tokens = tokens - n - result = true - end - self._tokens = tokens - return result -end - --- The can_take() method returns a true value if the bucket contains --- at least tokens, false otherwise. The bucket is updated in a --- layz fashion as described for the take() method. -function token_bucket:can_take (n) - local n = n or 1 - local tokens = self._tokens - if n <= tokens then - return true - end - tokens = self:_update(tokens) - self._tokens = tokens - return n <= tokens -end +-- Backward compatibility +token_bucket_new = require("lib.token_bucket").new -- Simple rate-limited logging facility. Usage: -- diff --git a/src/core/memory.lua b/src/core/memory.lua index a6a61b78fd..d068a95c13 100644 --- a/src/core/memory.lua +++ b/src/core/memory.lua @@ -146,12 +146,12 @@ function allocate_huge_page (size, persistent) local fd = syscall.open(tmpfile, "creat, rdwr", "RWXU") assert(fd, "create hugetlb") assert(syscall.ftruncate(fd, size), "ftruncate") - local tmpptr = syscall.mmap(nil, size, "read, write", "shared, hugetlb", fd, 0) + local tmpptr = syscall.mmap(nil, size, "read, write", "shared", fd, 0) assert(tmpptr, "mmap hugetlb") assert(syscall.mlock(tmpptr, size)) local phys = resolve_physical(tmpptr) local virt = bit.bor(phys, tag) - local ptr = syscall.mmap(virt, size, "read, write", "shared, hugetlb, fixed", fd, 0) + local ptr = syscall.mmap(virt, size, "read, write", "shared, fixed", fd, 0) local filename = ("/var/run/snabb/hugetlbfs/%012x.dma"):format(tonumber(phys)) if persistent then assert(syscall.rename(tmpfile, filename)) @@ -160,6 +160,7 @@ function allocate_huge_page (size, persistent) else assert(syscall.unlink(tmpfile)) end + syscall.munmap(tmpptr, size) syscall.close(fd) return ptr, filename end diff --git a/src/lib/README.ctable.md b/src/lib/README.ctable.md index fe144a49de..2e3d3e2fc6 100644 --- a/src/lib/README.ctable.md +++ b/src/lib/README.ctable.md @@ -52,6 +52,9 @@ Optional entries that may be present in the *parameters* table include: 2. Defaults to 0.9, for a 90% maximum occupancy ratio. * `min_occupancy_rate`: Minimum ratio of `occupancy/size`. Removing an entry from an "empty" table will shrink the table. + * `resize_callback`: An optional function that is called after the + table has been resized. The function is called with two arguments: + the ctable object and the old size. By default, no callback is used. — Function **ctable.load** *stream* *parameters* diff --git a/src/lib/README.token_bucket.md b/src/lib/README.token_bucket.md new file mode 100644 index 0000000000..b80fcd3493 --- /dev/null +++ b/src/lib/README.token_bucket.md @@ -0,0 +1,70 @@ +### Token Bucket (lib.token_bucket) + +This module implements a [token +bucket](https://en.wikipedia.org/wiki/Token_bucket) for rate-limiting +of arbitrary events. The bucket is filled with tokens at a constant +rate up to a given maximum called the *burst_size*. Tokens are added +and removed in integer quantities. An event can only take place if at +least one token is available. A burst of back-to-back events is +allowed to happen by consuming all available tokens at a given point +in time. The maximum size of such a burst is determined by the +capacity of the bucket, hence the name *burst_size*. + +The token bucket is updated in a lazy fashion, i.e. only when a +request for tokens cannot be satisfied immediately. + +By default, a token bucket uses the `rdtsc` time source via the +[`tsc`](./README.tsc.md) module to minimise overhead. To override, +the `default_source` parameter of the `tsc` module must be set +to the desired value. + +#### Functions + +— Function **new** *config* + +Creates an instance of a token bucket. The required *config* argument +must be a table with the following keys. + +— Key **rate** + +*Required*. The rate in units of Hz at which tokens are placed in the +bucket as an arbitrary floating point number larger than zero. + +— Key **burst_size** + +*Optional*. The maximum number of tokens that can be stored in the +bucket. The default is **rate** tokens, i.e. the amount of tokens +accumulated over one second rounded up to the next integer. + +#### Methods + +The object returned by the **new** function provides the following +methods. + +— Method **token_bucket:set** [*rate*], [*burst_size*] + +Set the rate and burst size to the values *rate* and *burst_size*, +respectively, and fill the bucket to capacity. If *rate* is `nil`, +the rate remains unchanged. If *burst_size* is `nil`, the burst size +is set to the number of tokens that will be accumulated over one +second with the new rate (like in the **new** function). + +— Method **token_bucket:get** + +Returns the current rate and burst size. + +— Method **token_bucket:can_take** [*n*] + +Returns `true` if at least *n* tokens are available, `false` +otherwise. If *n* is `nil`, the bucket is checked for a single token. + +— Method **token_bucket:take** [*n*] + +If at least *n* tokens are available, they are removed from the bucket +and the method returns `true`. Otherwise, the bucket remains +unchanged and `false` is returned. If *n* is `nil`, the bucket is +checked for a single token. + +— Method **token_bucket:take_burst** + +Takes all available tokens from the bucket and returns that number. diff --git a/src/lib/README.tsc.md b/src/lib/README.tsc.md new file mode 100644 index 0000000000..dcb8accf60 --- /dev/null +++ b/src/lib/README.tsc.md @@ -0,0 +1,112 @@ +### Time Stamp Counter (lib.tsc) + +A Time Stamp Counter (TSC) is an unsigned 64-bit value which increases +at a fixed frequency. The latter property provides a measure of the +time that has passed between two readings of the counter in units of +clock ticks. + +To convert a value in clock ticks to the corresponding number of +seconds requires a measurement of the actual frequency at which the +TSC runs. This is referred to as calibration. The `tsc` module +provides a uniform interface to TSCs based on different time sources. + +Example usage +```lua +local tsc = require('lib.tsc') +local sleep = require("ffi").C.sleep +local function wait(t) + print("source " .. t:source()) + local s1 = t:stamp() + sleep(1) + local s2 = t:stamp() + print(("clock ticks %s, nanoseconds %s"):format(tostring(s2 - s1), + tostring(t:to_ns(s2 - s1)))) +end + +wait(tsc.new()) +-- Override default +tsc.default_source = 'system' +wait(tsc.new()) +``` + +#### Parameters + +Parameters can be set by + +```lua +local tsc = require('lib.tsc') +tsc. = +``` + +— Parameter **default_source** *source* + +The time source used by a new TSC instance if no **source** key is +specified. The default is `rdtsc`. + +#### Functions + +— Function **new** *config* + +Create a new TSC instance. The optional *config* argument is a table +with the following keys. + +— Key **source** + +*Optional*. The name of the timing source to be used with this +instance. The following sources are available. The default is `rdtsc` +(or whatever has been set by the `default_source` parameter). + + * `system` + + This source uses `clock_gettime(2)` with `CLOCK_MONOTONIC` provided + by `ffi.C.get_time_ns()`. The frequency is exactly 1e9 Hz, + i.e. one tick per nanosecond. + + * `rdtsc` + + This source uses the [TSC](https://en.wikipedia.org/wiki/Time_Stamp_Counter) CPU + register via the `rdtsc` instruction, provided that the platform + supports the `constant_tsc` and `nonstop_tsc` features. If these + features are not present, a warning is printed and the TSC falls + back to the `system` time source. + + The TSC register is consistent for all cores of a CPU. However, + the calling program is responsible for setting the CPU affinity on + multi-socket systems. + + The `system` time source is used for calibration. + +— Function **rdtsc** + +Returns the current value of the CPU's TSC register through the +`rdtsc` instruction as a `uint64_t` object. + +#### Methods + +The object returned by the **new** function provides the following +methods. + +— Method **tsc:source** + +Returns the name of the time source, i.e. `rdtsc` or `system`. + +— Method **tsc:time_fn** + +Returns the function used to generate a time stamp for the configured +time source, which returns the value of the TSC as a `uint64_t` +object. + +— Method **tsc:stamp** + +Returns the current value of the TSC as a `uint64_t`. It is +equivalent to the call `tsc:time_fn()()`. + +— Method **tsc:tps** + +Returns the number of clock ticks per second as a `uint64_t`. + +— Method **tsc:to_ns**, *ticks* + +Returns *ticks* converted from clock ticks to nanoseconds as a +`uint64_t`. This method should be avoided in low-latency code paths +due to conversions from/to Lua numbers. diff --git a/src/lib/ctable.lua b/src/lib/ctable.lua index 3c7a973852..34513810a0 100644 --- a/src/lib/ctable.lua +++ b/src/lib/ctable.lua @@ -46,24 +46,28 @@ local function make_entry_type(key_type, value_type) else entry_types[key_type] = {} end + local raw_size = ffi.sizeof(key_type) + ffi.sizeof(value_type) + 4 + local padding = 2^ceil(math.log(raw_size)/math.log(2)) - raw_size local ret = ffi.typeof([[struct { uint32_t hash; $ key; $ value; + uint8_t padding[$]; } __attribute__((packed))]], key_type, - value_type) + value_type, + padding) entry_types[key_type][value_type] = ret return ret end local function make_entries_type(entry_type) - return ffi.typeof('$[?]', entry_type) + return (ffi.typeof('$[?]', entry_type)) end -- hash := [0,HASH_MAX); scale := size/HASH_MAX local function hash_to_index(hash, scale) - return floor(hash*scale) + return (floor(hash*scale)) end local function make_equal_fn(key_type) @@ -122,7 +126,8 @@ local optional_params = { hash_seed = false, initial_size = 8, max_occupancy_rate = 0.9, - min_occupancy_rate = 0.0 + min_occupancy_rate = 0.0, + resize_callback = false } function new(params) @@ -143,6 +148,7 @@ function new(params) ctab.occupancy = 0 ctab.max_occupancy_rate = params.max_occupancy_rate ctab.min_occupancy_rate = params.min_occupancy_rate + ctab.resize_callback = params.resize_callback ctab = setmetatable(ctab, { __index = CTable }) ctab:reseed_hash_function(params.hash_seed) ctab:resize(params.initial_size) @@ -228,6 +234,9 @@ function CTable:resize(size) self:add(old_entries[i].key, old_entries[i].value) end end + if self.resize_callback then + self.resize_callback(self, old_size) + end end function CTable:get_backing_size() diff --git a/src/lib/hash/siphash.dasl b/src/lib/hash/siphash.dasl index d065c001b2..778595eb86 100644 --- a/src/lib/hash/siphash.dasl +++ b/src/lib/hash/siphash.dasl @@ -172,7 +172,7 @@ local function SSE(stride) function asm.init(key) local initial_state = load_initial_state(key) table.insert(__anchor, initial_state) - | mov rax, initial_state + | mov64 rax, initial_state | movddup xmm0, [rax] | movddup xmm1, [rax+8] | movddup xmm2, [rax+16] @@ -253,7 +253,7 @@ local function AVX2(stride) local initial_state = load_initial_state(key) table.insert(__anchor, initial_state) | vzeroupper - | mov rax, initial_state + | mov64 rax, initial_state | vbroadcastsd ymm0, qword [rax] | vbroadcastsd ymm1, qword [rax+8] | vbroadcastsd ymm2, qword [rax+16] @@ -345,7 +345,7 @@ local function AVX2(stride) -- write out. local control = ffi.new('uint32_t[8]', 1, 3, 5, 7, 0, 0, 0, 0) table.insert(__anchor, control) - | mov rax, control + | mov64 rax, control | vmovdqu ymm5, [rax] | vpermd ymm(reg), ymm5, ymm(reg) | vpslld xmm(reg), xmm(reg), 1 diff --git a/src/lib/multi_copy.dasl b/src/lib/multi_copy.dasl index 5eb516ac29..09051eb526 100644 --- a/src/lib/multi_copy.dasl +++ b/src/lib/multi_copy.dasl @@ -58,7 +58,7 @@ function gen(count, size) tail_mask = ffi.new("uint8_t[32]") for i=0,tail_size-1 do tail_mask[i]=255 end table.insert(anchor, tail_mask) - | mov rax, tail_mask + | mov64 rax, tail_mask | vmovdqu ymm15, [rax] end diff --git a/src/lib/numa.lua b/src/lib/numa.lua index 03534b8cd4..56d1a78053 100644 --- a/src/lib/numa.lua +++ b/src/lib/numa.lua @@ -21,7 +21,7 @@ function cpu_get_numa_node (cpu) local node = 0 while true do local node_dir = S.open(node_path..node, 'rdonly, directory') - if not node_dir then return end + if not node_dir then return 0 end -- default NUMA node local found = S.readlinkat(node_dir, 'cpu'..cpu) node_dir:close() if found then return node end @@ -29,6 +29,13 @@ function cpu_get_numa_node (cpu) end end +local function supports_numa () + local node0 = S.open(node_path..tostring(0), 'rdonly, directory') + if not node0 then return false end + node0:close() + return true +end + function has_numa () local node1 = S.open(node_path..tostring(1), 'rdonly, directory') if not node1 then return false end @@ -41,7 +48,7 @@ function pci_get_numa_node (addr) local file = assert(io.open('/sys/bus/pci/devices/'..addr..'/numa_node')) local node = assert(tonumber(file:read())) -- node can be -1. - if node >= 0 then return node end + return math.max(0, node) end function choose_numa_node_for_pci_addresses (addrs, require_affinity) @@ -104,7 +111,9 @@ function bind_to_cpu (cpu) end function unbind_numa_node () - assert(S.set_mempolicy('default')) + if supports_numa() then + assert(S.set_mempolicy('default')) + end bound_numa_node = nil end @@ -113,11 +122,13 @@ function bind_to_numa_node (node) if not node then return unbind_numa_node() end assert(not bound_numa_node, "already bound") - assert(S.set_mempolicy('bind', node)) + if supports_numa() then + assert(S.set_mempolicy('bind', node)) - -- Migrate any pages that might have the wrong affinity. - local from_mask = assert(S.get_mempolicy(nil, nil, nil, 'mems_allowed')).mask - assert(S.migrate_pages(0, from_mask, node)) + -- Migrate any pages that might have the wrong affinity. + local from_mask = assert(S.get_mempolicy(nil, nil, nil, 'mems_allowed')).mask + assert(S.migrate_pages(0, from_mask, node)) + end bound_numa_node = node end @@ -145,6 +156,16 @@ function selftest () assert(bound_numa_node == nil) end + function test_pci_affinity (pciaddr) + check_affinity_for_pci_addresses({pciaddr}) + local node = choose_numa_node_for_pci_addresses({pciaddr}, true) + bind_to_numa_node(node) + assert(bound_numa_node == node) + check_affinity_for_pci_addresses({pciaddr}) + bind_to_numa_node(nil) + assert(bound_numa_node == nil) + end + print('selftest: numa') local cpu_set = S.sched_getaffinity() for cpuid = 0, MAX_CPU do @@ -152,5 +173,9 @@ function selftest () test_cpu(cpuid) end end + local pciaddr = os.getenv("SNABB_PCI0") + if pciaddr then + test_pci_affinity(pciaddr) + end print('selftest: numa: ok') end diff --git a/src/lib/pmu.lua b/src/lib/pmu.lua index 4c586b0ca4..96219707ff 100644 --- a/src/lib/pmu.lua +++ b/src/lib/pmu.lua @@ -25,16 +25,16 @@ local enabled = nil -- available on the running CPU. local function scan_available_counters () if defs then return defs end + defs = {} for i, set in ipairs(pmu_cpu) do local cpu, version, kind, list = unpack(set) -- XXX Only supporting "core" counters at present i.e. the -- counters built into the CPU core. if cpu == pmu_x86.cpu_model and kind == 'core' then - defs = defs or {} + defs = defs for k, v in pairs(list) do defs[k] = v end end end - defs = defs or false end -- Return an array containing the CPUs that we have affinity with. @@ -53,17 +53,13 @@ function is_available () if #cpu_set() ~= 1 then return false, "single core cpu affinity required" end - if not S.stat("/dev/cpu/0/msr") then - print("[pmu: /sbin/modprobe msr]") - os.execute("/sbin/modprobe msr") - if not S.stat("/dev/cpu/0/msr") then - return false, "requires /dev/cpu/*/msr (Linux 'msr' module)" - end + if not pmu_x86.enable_msr() then + return false, "requires /dev/cpu/*/msr (Linux 'msr' module)" end - scan_available_counters() - if not defs then - return false, "CPU not recognized: " .. pmu_x86.cpu_model + if not (pmu_x86.ncounters > 0) then + return false, "CPU not supported: " .. pmu_x86.cpu_model end + scan_available_counters() return true end @@ -113,47 +109,34 @@ function setup (patterns) table.insert(set, event) end end - table.sort(set) end + -- Allow selecting events by raw code + for _, pattern in pairs(patterns or {}) do + if pattern:match("^0x") then + table.insert(set, pattern) + end + end + table.sort(set) local ndropped = math.max(0, #set - pmu_x86.ngeneral) while (#set - pmu_x86.ngeneral) > 0 do table.remove(set) end local cpu = cpu_set()[1] - -- All available counters are globally enabled - -- (IA32_PERF_GLOBAL_CTRL). - writemsr(cpu, 0x38f, - bit.bor(bit.lshift(0x3ULL, 32), - bit.lshift(1ULL, pmu_x86.ngeneral) - 1)) - -- Enable all fixed-function counters (IA32_FIXED_CTR_CTRL) - writemsr(cpu, 0x38d, 0x333) + local used + enabled, used = pmu_x86.init_events(cpu, #set) for n = 0, #set-1 do - local code = defs[set[n+1]] - local USR = bit.lshift(1, 16) - local EN = bit.lshift(1, 22) - writemsr(cpu, 0x186+n, bit.bor(0x10000, USR, EN, code)) + local code = defs[set[n+1]] or tonumber(set[n+1]) + pmu_x86.enable_event(cpu, n+used, code) end - enabled = {"instructions", "cycles", "ref_cycles"} for i = 1, #set do table.insert(enabled, set[i]) end return ndropped end -function writemsr (cpu, msr, value) - local msrfile = ("/dev/cpu/%d/msr"):format(cpu) - if not S.stat(msrfile) then - error("Cannot open "..msrfile.." (consider 'modprobe msr')") - end - local fd = assert(S.open(msrfile, "rdwr")) - assert(fd:lseek(msr, "set")) - assert(fd:write(ffi.new("uint64_t[1]", value), 8)) - fd:close() -end - -- API function (see above) function report (tab, aux) aux = aux or {} local data = {} for k,v in pairs(tab) do table.insert(data, {k=k,v=v}) end -- Sort fixed-purpose counters to come first in definite order - local fixed = {cycles='0', ref_cycles='1', instructions='2'} + local fixed = {cycles='0000', ref_cycles='0001', instructions='0002'} table.sort(data, function(x,y) return (fixed[x.k] or x.k) < (fixed[y.k] or y.k) end) @@ -239,7 +222,7 @@ function selftest () print('', k, v) n = n + 1 end - assert(n == 3) + assert(n >= 2) print("selftest ok") end diff --git a/src/lib/pmu_x86.dasl b/src/lib/pmu_x86.dasl index 71a8de78ab..086f2dad06 100644 --- a/src/lib/pmu_x86.dasl +++ b/src/lib/pmu_x86.dasl @@ -16,7 +16,7 @@ local debug = false local lib = require("core.lib") local ffi = require("ffi") -local C = ffi.C +local S = require("syscall") local dasm = require("dasm") @@ -85,6 +85,7 @@ name.reg.ebx, name.reg.ecx, name.reg.edx = id.ebx, id.ecx, id.edx local vendor = ffi.string(name.string, 12) cpuid(0x1, id) local family = bit.band(bit.rshift(id.eax, 8), 0xf) +local extfamily = bit.band(bit.rshift(id.eax, 20), 0xff) local model = bit.band(bit.rshift(id.eax, 4), 0xf) local extmodel = bit.band(bit.rshift(id.eax, 16), 0xf) @@ -93,13 +94,28 @@ local extmodel = bit.band(bit.rshift(id.eax, 16), 0xf) -- (Could alternatively grovel this from /proc/cpuinfo.) cpu_model = ("%s-%X-%X%X"):format(vendor, family, extmodel, model) --- Calculate nfixed, ngeneral, ncounters: number of CPU performance --- counters for the running CPU. -local id = ffi.new(cpuid_t) -cpuid(0xa, id) -nfixed = bit.band(id.edx, 0x1f) -ngeneral = bit.band(bit.rshift(id.eax, 8), 0xff) -ncounters = nfixed + ngeneral +-- PMC control register base and step. +local pmc_ctl_base, pmc_ctl_step + +if vendor == "GenuineIntel" then + pmc_ctl_base, pmc_ctl_step = 0x186, 1 + -- Calculate nfixed, ngeneral, ncounters: number of CPU performance + -- counters for the running CPU. + local id = ffi.new(cpuid_t) + cpuid(0xa, id) + nfixed = bit.band(id.edx, 0x1f) + ngeneral = bit.band(bit.rshift(id.eax, 8), 0xff) +elseif vendor == "AuthenticAMD" then + if family+extfamily >= 0x15 then + pmc_ctl_base, pmc_ctl_step = 0xc0010200, 2 + nfixed = 0 + ngeneral = 4 + end + if family+extfamily >= 0x17 then + ngeneral = 6 + end +end +ncounters = (nfixed or 0) + (ngeneral or 0) -- rdpmc_multi(uint64_t[nfixed+ngeneral] *dst) -- @@ -147,22 +163,95 @@ function enable_rdpmc () end end +-- Enable MSR +function enable_msr () + if not S.stat("/dev/cpu/0/msr") then + print("[pmu: modprobe msr]") + os.execute("modprobe msr") + if not S.stat("/dev/cpu/0/msr") then + return false, "requires /dev/cpu/*/msr (Linux 'msr' module)" + end + end + return true +end + +local function writemsr (cpu, msr, value) + local msrfile = ("/dev/cpu/%d/msr"):format(cpu) + if not S.stat(msrfile) then + error("Cannot open "..msrfile.." (consider 'modprobe msr')") + end + local fd = assert(S.open(msrfile, "rdwr")) + assert(fd:lseek(msr, "set")) + assert(fd:write(ffi.new("uint64_t[1]", value), 8)) + fd:close() +end + +-- Platform specifc MSR functions: +-- +-- init_events(cpu, nevents) -> fixed-function counters, gen. ctrs claimed +-- Initializes and enables fixed-function counters. +-- +-- enable_event(index, code) +-- Sets up counter at index to count event(s) by code. + +if vendor == "GenuineIntel" then + function init_events (cpu) + -- All available counters are globally enabled + -- (IA32_PERF_GLOBAL_CTRL). + writemsr(cpu, 0x38f, bit.bor(bit.lshift(0x3ULL, 32), + bit.lshift(1ULL, ngeneral) - 1)) + -- Enable all fixed-function counters (IA32_FIXED_CTR_CTRL) + writemsr(cpu, 0x38d, 0x333) + return {"instructions", "cycles", "ref_cycles"}, 0 + end + +elseif vendor == "AuthenticAMD" and family+extfamily >= 0x15 then + function init_events (cpu, nselected) + -- No setup, no fixed-function counters. To keep API portability we add + -- enable some events by default if there is room. + local default = {} + for event, code in pairs({instructions=0x00c0, cycles=0x0076}) do + if nselected < ngeneral then + enable_event(cpu, #default, code) + default[#default+1] = event + nselected = nselected + 1 + end + end + return default, #default + end +end + +function enable_event (cpu, index, code) + local USR = bit.lshift(1, 16) + local EN = bit.lshift(1, 22) + -- AMD BKDG says: To accurately start counting with the write that enables + -- the counter, disable the counter when changing the event and then enable + -- the counter with a second MSR write + writemsr(cpu, pmc_ctl_base+index*pmc_ctl_step, 0) + writemsr(cpu, pmc_ctl_base+index*pmc_ctl_step, bit.bor(USR, EN, code)) +end + function selftest () print("selftest: pmu_x86") enable_rdpmc() - -- Expected values for Sandy Bridge - Skylake print("nfixed", nfixed, "ngeneral", ngeneral) - assert(nfixed == 3, "nfixed: " .. nfixed) - assert(ngeneral == 4 or ngeneral == 8, "ngeneral: " .. ngeneral) - local buf = ffi.new("uint64_t[?]", nfixed + ngeneral + 1) + if vendor == "GenuineIntel" then + -- Expected values for Sandy Bridge - Skylake + assert(nfixed == 3, "nfixed: " .. nfixed) + assert(ngeneral == 4 or ngeneral == 8, "ngeneral: " .. ngeneral) + elseif vendor == "AuthenticAMD" and family+extfamily >= 0x15 then + assert(nfixed == 0, "nfixed: " .. nfixed) + assert(ngeneral >= 4, "ngeneral: " .. nfixed) + end + local buf = ffi.new("uint64_t[?]", ncounters + 1) local magic = 0x0001020304050607ULL -- Store magic number in all fields (including extra sentinel) - for i = 0, nfixed+ngeneral do buf[i] = magic end + for i = 0, ncounters do buf[i] = magic end rdpmc_multi(buf) - for i = 0, 9-1 do print("buf["..i.."]", tonumber(buf[i])) end + for i = 0, ncounters do print("buf["..i.."]", tonumber(buf[i])) end -- Check that all values are written - for i = 0, nfixed+ngeneral-1 do assert(buf[i] ~= magic, "overwrite") end - assert(buf[nfixed+ngeneral] == magic, "sentinel") + for i = 0, ncounters-1 do assert(buf[i] ~= magic, "overwrite") end + assert(buf[ncounters] == magic, "sentinel") print("selftest: ok") end diff --git a/src/lib/protocol/icmp/header.lua b/src/lib/protocol/icmp/header.lua index 2853e636df..373fb12d69 100644 --- a/src/lib/protocol/icmp/header.lua +++ b/src/lib/protocol/icmp/header.lua @@ -16,7 +16,8 @@ local icmp = subClass(header) -- Class variables icmp._name = "icmp" icmp._ulp = { - class_map = { [135] = "lib.protocol.icmp.nd.ns", + class_map = { [2] = "lib.protocol.icmp.ptb", + [135] = "lib.protocol.icmp.nd.ns", [136] = "lib.protocol.icmp.nd.na" }, method = "type" } icmp:init( diff --git a/src/lib/protocol/icmp/ptb.lua b/src/lib/protocol/icmp/ptb.lua new file mode 100644 index 0000000000..1362cdb2ab --- /dev/null +++ b/src/lib/protocol/icmp/ptb.lua @@ -0,0 +1,37 @@ +-- Use of this source code is governed by the Apache 2.0 license; see COPYING. + +module(..., package.seeall) +local ffi = require("ffi") +local C = ffi.C +local lib = require("core.lib") +local proto_header = require("lib.protocol.header") + +local ptb = subClass(proto_header) + +-- Class variables +ptb._name = "packet too big" +ptb._ulp = { method = nil } +proto_header.init(ptb, + { + -- The original packet follows the mtu. Because + -- it is of variable size, it is considered as + -- payload rather than part of the ICMP message + -- so it can be retrieved with the datagram + -- payload() method. + [1] = ffi.typeof[[ + struct { + uint32_t mtu; + } __attribute__((packed)) + ]] + }) + +-- Instance methods + +function ptb:mtu (mtu) + if mtu ~= nil then + self:header().mtu = lib.htonl(mtu) + end + return lib.ntohl(self:header().mtu) +end + +return ptb diff --git a/src/lib/token_bucket.lua b/src/lib/token_bucket.lua new file mode 100644 index 0000000000..9debd80d04 --- /dev/null +++ b/src/lib/token_bucket.lua @@ -0,0 +1,130 @@ +-- Use of this source code is governed by the Apache 2.0 license; see COPYING. + +module(...,package.seeall) + +local lib = require("core.lib") +local tsc = require("lib.tsc") +local ffi = require("ffi") + +local token_bucket = {} +local params = { + rate = { required = true }, + burst_size = { required = false }, +} + +function new (arg) + local config = lib.parse(arg, params) + local tb = setmetatable({}, { __index = token_bucket }) + + tb._tsc = tsc.new() + tb._time_fn = tb._tsc:time_fn() + -- Use explicit box to avoid garbage in can_take() + tb._tstamp = ffi.new("uint64_t [1]") + tb:set(config.rate, config.burst_size) + + return tb +end + +function token_bucket:set (rate, burst_size) + if rate ~= nil then + assert(type(rate) == 'number') + assert(rate > 0) + self._rate = rate + -- Ticks per token + self._tpt = tonumber(self._tsc:tps())/rate + 0ULL + end + + if burst_size == nil then + burst_size = self._rate + end + assert(type(burst_size) == 'number') + self._burst_size = math.ceil(burst_size) + + self._tokens = self._burst_size + self._tstamp[0] = self._time_fn() +end + +function token_bucket:get () + return self._rate, self._burst_size +end + +-- For backward compatibility only +function token_bucket:rate (rate) + local old_rate = self._rate + if rate ~= nil then + self:set(rate, self._burst_size) + end + return old_rate +end + +function token_bucket:can_take (n) + local n = n or 1 + local tokens = self._tokens + if n <= tokens then + return true + else + -- Accumulate fresh tokens since the last time we've checked + local elapsed = self._time_fn() - self._tstamp[0] + if elapsed >= self._tpt then + -- We have at least one new token. We're careful to use + -- uint64 values to make this an integer division. Would be + -- nice if we had access to the remainder from the `div` + -- instruction. + local fresh_tokens = elapsed/self._tpt + tokens = tokens + tonumber(fresh_tokens) + self._tstamp[0] = self._tstamp[0] + self._tpt * fresh_tokens + if tokens > self._burst_size then + tokens = self._burst_size + end + self._tokens = tokens + return n <= tokens + end + return false + end +end + +function token_bucket:take (n) + local n = n or 1 + if self:can_take(n) then + self._tokens = self._tokens - n + return true + end + return false +end + +function token_bucket:take_burst () + self:can_take(self._burst_size) + local tokens = self._tokens + self._tokens = 0 + return tokens +end + +function selftest() + local rate, burst_size = 10000, 50 + local tb = new({ rate = rate, burst_size = burst_size }) + local interval = 0.5 -- seconds + local i = 0 + local now = ffi.C.get_time_ns() + while ffi.C.get_time_ns() - now < interval * 1000000000 do + if tb:take() then + i = i + 1 + end + end + local rate_eff = (i - burst_size)/interval + assert(rate_eff/rate == 1) + + local r, b = tb:get() + assert(r == rate) + assert(b == burst_size) + + tb:set(rate, burst_size) + assert(tb:can_take(burst_size)) + assert(not tb:can_take(burst_size + 1)) + assert(tb:take(burst_size)) + assert(not tb:take()) + + tb:set(0.1) + local r, b = tb:get() + assert(r == 0.1) + assert(b == 1) +end diff --git a/src/lib/tsc.lua b/src/lib/tsc.lua new file mode 100644 index 0000000000..f12b74727c --- /dev/null +++ b/src/lib/tsc.lua @@ -0,0 +1,120 @@ +-- Use of this source code is governed by the Apache 2.0 license; see COPYING. + +-- Provide a time stamp counter suitable for measuring time intervals. + +module(...,package.seeall) + +local lib = require("core.lib") +local C = require("ffi").C +require("core.lib_h") + +default_source = 'rdtsc' +local calibration_interval = 5e8 + +-- Return the value of the CPU's TSC register +local rdtsc_code +rdtsc = require('dynasm').loadstring [[ + local ffi = require('ffi') + local dasm = require('dasm') + |.arch x64 + |.actionlist actions + local Dst = dasm.new(actions) + | rdtsc + | shl rdx, 32 + | or rax, rdx + | ret + rdtsc_code = Dst:build() + return ffi.cast('uint64_t (*)()', rdtsc_code) +]]() + +local cpuinfo = lib.readfile("/proc/cpuinfo", "*a") +assert(cpuinfo, "failed to read /proc/cpuinfo for tsc check") +local have_usable_rdtsc = (cpuinfo:match("constant_tsc") and + cpuinfo:match("nonstop_tsc")) + +local time_sources = { + rdtsc = { + time_fn = rdtsc, + calibrate_fn = function () + local start_ns = C.get_time_ns() + local start_ticks = rdtsc() + for _ = 1, calibration_interval do end + local end_ticks = rdtsc() + local end_ns = C.get_time_ns() + return tonumber(end_ticks - start_ticks)/tonumber(end_ns - start_ns) + * 1000000000 + 0ULL + end + }, + system = { + time_fn = C.get_time_ns, + calibrate_fn = function () + return 1000000000ULL + end + } +} + +local tsc = {} + +function new (arg) + local config = lib.parse(arg, { source = { default = default_source } }) + local o = {} + if config.source == 'rdtsc' and not have_usable_rdtsc then + print("tsc: rdtsc is unusable on this system, " + .. "falling back to system time source") + config.source = 'system' + end + o._source = config.source + + local source = assert(time_sources[o._source], + "tsc: unknown time source '" .. o._source .."'") + o._time_fn = source.time_fn + -- Ticks per second (uint64) + o._tps = source.calibrate_fn() + -- Nanoseconds per tick (Lua number) + o._nspt = 1/tonumber(o._tps) * 1000000000 + + return setmetatable( o, { __index = tsc }) +end + +function tsc:source () + return self._source +end + +function tsc:time_fn () + return self._time_fn +end + +function tsc:stamp () + return self._time_fn() +end + +function tsc:tps () + return self._tps +end + +function tsc:to_ns (ticks) + if self._source == 'system' then + return ticks + else + return tonumber(ticks) * self._nspt + 0ULL + end +end + +function selftest() + local function check(tsc) + for _ = 1, 10 do + local start_ns = C.get_time_ns() + local start_tsc = tsc:stamp() + for _ = 1, calibration_interval do end + local end_ns = C.get_time_ns() + local end_tsc = tsc:stamp() + local diff_ns = tonumber(end_ns - start_ns) + local diff_tsc = tonumber(tsc:to_ns(end_tsc) - tsc:to_ns(start_tsc)) + local diff = diff_ns - diff_tsc + assert(math.abs(diff/diff_ns) < 1e-3, tsc:source()) + end + end + + check(new({ source = 'rdtsc' })) + check(new({ source = 'system' })) +end diff --git a/src/lib/virtio/net_device.lua b/src/lib/virtio/net_device.lua index 84500c8004..8683a0a217 100644 --- a/src/lib/virtio/net_device.lua +++ b/src/lib/virtio/net_device.lua @@ -54,7 +54,8 @@ local invalid_header_id = 0xffff local supported_features = C.VIRTIO_F_ANY_LAYOUT + C.VIRTIO_NET_F_CTRL_VQ + C.VIRTIO_NET_F_MQ + - C.VIRTIO_NET_F_CSUM + C.VIRTIO_NET_F_CSUM + + C.VHOST_USER_F_PROTOCOL_FEATURES --[[ The following offloading flags are also available: VIRTIO_NET_F_CSUM @@ -229,6 +230,7 @@ end function VirtioNetDevice:tx_packet_start(addr, len) local l = self.owner.input.rx + assert(l, "input port not found") if link.empty(l) then return nil, nil end local tx_p = link.receive(l) @@ -265,6 +267,7 @@ end function VirtioNetDevice:tx_packet_start_mrg_rxbuf(addr, len) local tx_mrg_hdr = ffi.cast(virtio_net_hdr_mrg_rxbuf_type, self:map_from_guest(addr)) local l = self.owner.input.rx + assert(l, "input port not found") local tx_p = self.tx.p ffi.fill(tx_mrg_hdr, virtio_net_hdr_mrg_rxbuf_size) @@ -494,7 +497,9 @@ feature_names = { [C.VIRTIO_NET_F_CTRL_MAC_ADDR] = "VIRTIO_NET_F_CTRL_MAC_ADDR", [C.VIRTIO_NET_F_CTRL_GUEST_OFFLOADS] = "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS", - [C.VIRTIO_NET_F_MQ] = "VIRTIO_NET_F_MQ" + [C.VIRTIO_NET_F_MQ] = "VIRTIO_NET_F_MQ", + + [C.VHOST_USER_F_PROTOCOL_FEATURES] = "VHOST_USER_F_PROTOCOL_FEATURES" } -- Request fresh Just-In-Time compilation of the vring processing code. diff --git a/src/lib/virtio/virtio.h b/src/lib/virtio/virtio.h index d86426cd8b..6d5df67fe8 100644 --- a/src/lib/virtio/virtio.h +++ b/src/lib/virtio/virtio.h @@ -56,7 +56,8 @@ enum { VIRTIO_NET_F_CTRL_RX_EXTRA = 1 << 20, // Extra RX mode control support VIRTIO_NET_F_GUEST_ANNOUNCE = 1 << 21, // Guest can announce device on network VIRTIO_NET_F_MQ = 1 << 22, // Device supports Receive Flow Steering - VIRTIO_NET_F_CTRL_MAC_ADDR = 1 << 23 // Set MAC address + VIRTIO_NET_F_CTRL_MAC_ADDR = 1 << 23, // Set MAC address + VHOST_USER_F_PROTOCOL_FEATURES = 1 << 30 // Protocol feature extensions }; enum { diff --git a/src/lib/yang/data.lua b/src/lib/yang/data.lua index 8da0d0e6b4..d3b6e85dba 100644 --- a/src/lib/yang/data.lua +++ b/src/lib/yang/data.lua @@ -302,7 +302,7 @@ local function length_validator(length, f) if not length then return f end local is_in_range = range_predicate(length.value) return function(val, P) - if is_in_range(string.length(val)) then return f(val, P) end + if is_in_range(string.len(val)) then return f(val, P) end P:error('length of string '..val..' is out of the valid range') end end @@ -1447,5 +1447,46 @@ function selftest() ]]) assert(success == false) + -- Test range / length restrictions. + local range_length_schema = schema.load_schema([[module range-length-schema { + namespace "urn:ietf:params:xml:ns:yang:range-length-schema"; + prefix "test"; + + leaf-list range_test { + type uint8 { range 1..10|20..30; } + } + leaf-list length_test { + type string { length 1..10|20..30; } + } + }]]) + + -- Test range validation. (should fail) + local success, err = pcall(load_config_for_schema, range_length_schema, [[ + range_test 9; + range_test 35; + ]]) + assert(success == false) + + -- Test length validation. (should fail) + local success, err = pcall(load_config_for_schema, range_length_schema, [[ + length_test "+++++++++++++++++++++++++++++++++++"; + length_test "..............."; + ]]) + assert(success == false) + + -- Test range validation. (should succeed) + local success, err = pcall(load_config_for_schema, range_length_schema, [[ + range_test 9; + range_test 22; + ]]) + assert(success) + + -- Test length validation. (should succeed) + local success, err = pcall(load_config_for_schema, range_length_schema, [[ + length_test "........."; + length_test "++++++++++++++++++++++"; + ]]) + assert(success) + print('selfcheck: ok') end diff --git a/src/lib/yang/schema.lua b/src/lib/yang/schema.lua index a08bd625a6..6075ad062f 100644 --- a/src/lib/yang/schema.lua +++ b/src/lib/yang/schema.lua @@ -463,7 +463,7 @@ local function init_type(node, loc, argument, children) node.id = require_argument(loc, argument) node.range = maybe_child(loc, children, 'range') node.fraction_digits = maybe_child_property(loc, children, 'fraction-digits', 'value') - node.length = maybe_child_property(loc, children, 'length', 'value') + node.length = maybe_child(loc, children, 'length') node.patterns = collect_children(children, 'pattern') node.enums = collect_children(children, 'enum') -- !!! path diff --git a/src/program/lwaftr/tests/data/counters/arp-for-next-hop.lua b/src/program/lwaftr/tests/data/counters/arp-for-next-hop.lua index 2793c2f2f9..b9ab1dc980 100644 --- a/src/program/lwaftr/tests/data/counters/arp-for-next-hop.lua +++ b/src/program/lwaftr/tests/data/counters/arp-for-next-hop.lua @@ -1,5 +1,5 @@ return { - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-frag-not"] = 1, } diff --git a/src/program/lwaftr/tests/data/counters/empty.lua b/src/program/lwaftr/tests/data/counters/empty.lua index 7208223671..66cfe280fe 100644 --- a/src/program/lwaftr/tests/data/counters/empty.lua +++ b/src/program/lwaftr/tests/data/counters/empty.lua @@ -1,4 +1,4 @@ return { - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-allow.lua b/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-allow.lua index 9a51a94ab0..3c4a0491f8 100644 --- a/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-allow.lua +++ b/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-allow.lua @@ -6,8 +6,8 @@ return { ["in-ipv4-bytes"] = 1494, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 590, ["out-icmpv4-packets"] = 1, ["out-ipv4-bytes"] = 590, diff --git a/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-drop.lua b/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-drop.lua index 6c773d48e8..1ac4f06174 100644 --- a/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-drop.lua +++ b/src/program/lwaftr/tests/data/counters/from-inet-ipv4-in-binding-big-packet-df-set-drop.lua @@ -7,6 +7,6 @@ return { ["in-ipv4-bytes"] = 1494, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin-n64.lua b/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin-n64.lua index 15ddd6332f..26667c7f95 100644 --- a/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin-n64.lua +++ b/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin-n64.lua @@ -4,8 +4,8 @@ return { ["in-ipv6-bytes"] = 6784, ["in-ipv6-frag-reassembly-unneeded"] = 64, ["in-ipv6-packets"] = 64, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 6784, ["out-ipv6-frag-not"] = 64, ["out-ipv6-packets"] = 64, diff --git a/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin.lua b/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin.lua index 4112e1e122..d69b852870 100644 --- a/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin.lua +++ b/src/program/lwaftr/tests/data/counters/from-to-b4-ipv6-hairpin.lua @@ -4,8 +4,8 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 106, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin-unbound.lua b/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin-unbound.lua index 546f0f68cc..0222985aa2 100644 --- a/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin-unbound.lua +++ b/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin-unbound.lua @@ -10,6 +10,6 @@ return { ["in-ipv6-bytes"] = 138, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin.lua b/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin.lua index 419b41aa26..ce38659ba7 100644 --- a/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin.lua +++ b/src/program/lwaftr/tests/data/counters/from-to-b4-tunneled-icmpv4-ping-hairpin.lua @@ -4,8 +4,8 @@ return { ["in-ipv6-bytes"] = 138, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 138, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/icmpv6-ping-and-reply.lua b/src/program/lwaftr/tests/data/counters/icmpv6-ping-and-reply.lua index 4f7b8b9853..3c274602e3 100644 --- a/src/program/lwaftr/tests/data/counters/icmpv6-ping-and-reply.lua +++ b/src/program/lwaftr/tests/data/counters/icmpv6-ping-and-reply.lua @@ -1,6 +1,6 @@ return { ["in-ipv6-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-frag-not"] = 1, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-infrags-out-1p-ipv6-6-outfrags.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-infrags-out-1p-ipv6-6-outfrags.lua index 9a1c850da4..733546771d 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-infrags-out-1p-ipv6-6-outfrags.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-infrags-out-1p-ipv6-6-outfrags.lua @@ -3,8 +3,8 @@ return { ["in-ipv4-frag-needs-reassembly"] = 3, ["in-ipv4-frag-reassembled"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 1514, ["out-ipv6-frag"] = 2, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-0p-drop.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-0p-drop.lua index b2b9a16bda..f54a875a73 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-0p-drop.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-0p-drop.lua @@ -1,5 +1,5 @@ return { ["in-ipv4-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-icmpv4.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-icmpv4.lua index 2655573299..eecdde9a1f 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-icmpv4.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-icmpv4.lua @@ -6,8 +6,8 @@ return { ["in-ipv4-bytes"] = 66, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 94, ["out-icmpv4-packets"] = 1, ["out-ipv4-bytes"] = 94, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-1.lua index 10d89effda..0f66323da5 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-1.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 66, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 106, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-2.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-2.lua index a937135863..86b076482a 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-2.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-2.lua @@ -3,8 +3,8 @@ return { ["in-ipv4-frag-needs-reassembly"] = 3, ["in-ipv4-frag-reassembled"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 1500, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-3.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-3.lua index ec1e5578a6..01418d89dd 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-3.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-3.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 1494, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 1534, ["out-ipv6-frag"] = 2, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-4.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-4.lua index 25c1ab176e..4457e0be24 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-4.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-4.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 2734, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 2774, ["out-ipv6-frag"] = 3, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6-outfrags.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6-outfrags.lua index 5501b029e6..ba05aee0c6 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6-outfrags.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6-outfrags.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 1474, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 1514, ["out-ipv6-frag"] = 2, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6.lua index 438f1d22cf..38d2e263bb 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-6.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 1474, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 1514, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-7.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-7.lua index 00e36d9d75..28e02ebb0e 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-7.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-7.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 98, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 138, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-8.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-8.lua index 0867902ddb..1647ce627d 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-8.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-8.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 70, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 110, ["out-ipv6-frag-not"] = 1, ["out-ipv6-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-echo.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-echo.lua index 8d9f7fab3e..fe3f6fc983 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-echo.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-1p-ipv6-echo.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 66, ["in-ipv4-frag-reassembly-unneeded"] = 2, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-frag-not"] = 1, ["out-ipv6-bytes"] = 106, ["out-ipv6-frag-not"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-1.lua index 92c092a35b..226c58c2fb 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-1.lua @@ -7,6 +7,6 @@ return { ["in-ipv4-bytes"] = 66, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-2.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-2.lua index 13b6ec8750..df93b0739a 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-2.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-2.lua @@ -6,6 +6,6 @@ return { ["in-ipv4-bytes"] = 98, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-3.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-3.lua index 3db952765c..8a70c2c4eb 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-3.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-3.lua @@ -6,6 +6,6 @@ return { ["in-ipv4-bytes"] = 98, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-4.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-4.lua index 26db157aa9..e98f2e3c79 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-4.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv4-out-none-4.lua @@ -8,6 +8,6 @@ return { ["in-ipv4-bytes"] = 98, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-0p-ipv4.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-0p-ipv4.lua index 0039cfebd7..93ac662da1 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-0p-ipv4.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-0p-ipv4.lua @@ -1,6 +1,6 @@ return { ["drop-ipv6-frag-invalid-reassembly"] = 1, ["in-ipv6-frag-needs-reassembly"] = 2, - ["memuse-ipv4-frag-reassembly-buffer"] = 456549312, - ["memuse-ipv6-frag-reassembly-buffer"] = 247104, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 393216, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv4-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv4-1.lua index 7f9574f25d..a38097dfd6 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv4-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv4-1.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 154, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 94, ["out-icmpv4-packets"] = 1, ["out-ipv4-bytes"] = 94, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-1.lua index f972609c9f..283801a033 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-1.lua @@ -6,8 +6,8 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv6-bytes"] = 154, ["out-icmpv6-packets"] = 1, ["out-ipv6-bytes"] = 154, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-2.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-2.lua index 53caed023d..aad8233063 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-2.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-icmpv6-2.lua @@ -6,8 +6,8 @@ return { ["in-ipv6-bytes"] = 138, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv6-bytes"] = 186, ["out-icmpv6-packets"] = 1, ["out-ipv6-bytes"] = 186, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-1.lua index 0e075b418d..ed3bcb69c5 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-1.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 1046, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 1006, ["out-ipv4-frag"] = 2, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-2.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-2.lua index 973dcfc47f..3fecd1a4f1 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-2.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-2.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 1500, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 1460, ["out-ipv4-frag"] = 3, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-3.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-3.lua index 5ff24a36ff..ead36e485c 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-3.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-3.lua @@ -3,8 +3,8 @@ return { ["in-ipv6-frag-needs-reassembly"] = 2, ["in-ipv6-frag-reassembled"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 1494, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4-and-echo.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4-and-echo.lua index f9035f9bea..acef37d165 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4-and-echo.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4-and-echo.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 2, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 66, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4.lua index 834c120fcd..6d30616d58 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-4.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 66, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5-frags.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5-frags.lua index d6b1b9c569..254e2043d4 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5-frags.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5-frags.lua @@ -3,8 +3,8 @@ return { ["in-ipv6-frag-needs-reassembly"] = 2, ["in-ipv6-frag-reassembled"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 1474, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5.lua index 985275fcd4..0f4ce4be24 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-5.lua @@ -3,8 +3,8 @@ return { ["in-ipv6-frag-needs-reassembly"] = 2, ["in-ipv6-frag-reassembled"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 1474, ["out-ipv4-frag"] = 3, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-hoplimhair.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-hoplimhair.lua index bdc0ee6b07..92898bb9fd 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-hoplimhair.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-1p-ipv4-hoplimhair.lua @@ -2,8 +2,8 @@ return { ["in-ipv6-bytes"] = 154, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 94, ["out-icmpv4-packets"] = 1, ["out-ipv6-bytes"] = 134, diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-1.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-1.lua index 80202aa470..14976104ef 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-1.lua @@ -7,6 +7,6 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-2.lua b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-2.lua index 15206420dd..4255a873a9 100644 --- a/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-2.lua +++ b/src/program/lwaftr/tests/data/counters/in-1p-ipv6-out-none-2.lua @@ -6,6 +6,6 @@ return { ["in-ipv6-bytes"] = 154, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1-drop.lua b/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1-drop.lua index e947e231f0..8719803782 100644 --- a/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1-drop.lua +++ b/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1-drop.lua @@ -9,6 +9,6 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1.lua b/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1.lua index e0e7166ca4..405de1a44a 100644 --- a/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1.lua +++ b/src/program/lwaftr/tests/data/counters/in-ipv4-ipv6-out-icmpv4-ipv6-hairpin-1.lua @@ -8,8 +8,8 @@ return { ["in-ipv6-bytes"] = 106, ["in-ipv6-frag-reassembly-unneeded"] = 1, ["in-ipv6-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 94, ["out-icmpv4-packets"] = 1, ["out-ipv6-bytes"] = 134, diff --git a/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-2pkts.lua b/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-2pkts.lua index 7adb04d160..ae923e4410 100644 --- a/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-2pkts.lua +++ b/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-2pkts.lua @@ -4,8 +4,8 @@ return { ["in-ipv6-bytes"] = 212, ["in-ipv6-frag-reassembly-unneeded"] = 2, ["in-ipv6-packets"] = 2, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 66, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-3pkts.lua b/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-3pkts.lua index 81fcda8270..8c074bb911 100644 --- a/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-3pkts.lua +++ b/src/program/lwaftr/tests/data/counters/ndp-no-na-next-hop6-mac-not-set-3pkts.lua @@ -4,8 +4,8 @@ return { ["in-ipv6-bytes"] = 212, ["in-ipv6-frag-reassembly-unneeded"] = 3, ["in-ipv6-packets"] = 2, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-bytes"] = 66, ["out-ipv4-frag-not"] = 1, ["out-ipv4-packets"] = 1, diff --git a/src/program/lwaftr/tests/data/counters/ndp-ns-for-next-hop.lua b/src/program/lwaftr/tests/data/counters/ndp-ns-for-next-hop.lua index c779a5230e..b2c38d02ce 100644 --- a/src/program/lwaftr/tests/data/counters/ndp-ns-for-next-hop.lua +++ b/src/program/lwaftr/tests/data/counters/ndp-ns-for-next-hop.lua @@ -1,5 +1,5 @@ return { - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-frag-not"] = 1, } diff --git a/src/program/lwaftr/tests/data/counters/ndp-secondary.lua b/src/program/lwaftr/tests/data/counters/ndp-secondary.lua index ea6efae53a..162edb11a9 100644 --- a/src/program/lwaftr/tests/data/counters/ndp-secondary.lua +++ b/src/program/lwaftr/tests/data/counters/ndp-secondary.lua @@ -1,5 +1,5 @@ return { ["in-ipv6-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/nofrag4.lua b/src/program/lwaftr/tests/data/counters/nofrag4.lua index 4cecaaec9d..045cbb95f2 100644 --- a/src/program/lwaftr/tests/data/counters/nofrag4.lua +++ b/src/program/lwaftr/tests/data/counters/nofrag4.lua @@ -1,6 +1,6 @@ return { ["in-ipv4-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv4-frag-not"] = 1, } diff --git a/src/program/lwaftr/tests/data/counters/nofrag6-sol.lua b/src/program/lwaftr/tests/data/counters/nofrag6-sol.lua index 4f7b8b9853..3c274602e3 100644 --- a/src/program/lwaftr/tests/data/counters/nofrag6-sol.lua +++ b/src/program/lwaftr/tests/data/counters/nofrag6-sol.lua @@ -1,6 +1,6 @@ return { ["in-ipv6-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-frag-not"] = 1, } diff --git a/src/program/lwaftr/tests/data/counters/nofrag6.lua b/src/program/lwaftr/tests/data/counters/nofrag6.lua index ea6efae53a..162edb11a9 100644 --- a/src/program/lwaftr/tests/data/counters/nofrag6.lua +++ b/src/program/lwaftr/tests/data/counters/nofrag6.lua @@ -1,5 +1,5 @@ return { ["in-ipv6-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/non-ipv4-traffic-to-ipv4-interface.lua b/src/program/lwaftr/tests/data/counters/non-ipv4-traffic-to-ipv4-interface.lua index 09111a1418..bb3eb92a4c 100644 --- a/src/program/lwaftr/tests/data/counters/non-ipv4-traffic-to-ipv4-interface.lua +++ b/src/program/lwaftr/tests/data/counters/non-ipv4-traffic-to-ipv4-interface.lua @@ -4,6 +4,6 @@ return { ["drop-misplaced-not-ipv6-bytes"] = 66, ["drop-misplaced-not-ipv6-packets"] = 1, ["in-ipv6-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/non-ipv6-traffic-to-ipv6-interface.lua b/src/program/lwaftr/tests/data/counters/non-ipv6-traffic-to-ipv6-interface.lua index 60840479d6..8404387f4f 100644 --- a/src/program/lwaftr/tests/data/counters/non-ipv6-traffic-to-ipv6-interface.lua +++ b/src/program/lwaftr/tests/data/counters/non-ipv6-traffic-to-ipv6-interface.lua @@ -4,6 +4,6 @@ return { ["drop-misplaced-not-ipv4-bytes"] = 106, ["drop-misplaced-not-ipv4-packets"] = 1, ["in-ipv4-frag-reassembly-unneeded"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/regressiontest-endaddr.lua b/src/program/lwaftr/tests/data/counters/regressiontest-endaddr.lua index aad7510bfc..be5c83e3b7 100644 --- a/src/program/lwaftr/tests/data/counters/regressiontest-endaddr.lua +++ b/src/program/lwaftr/tests/data/counters/regressiontest-endaddr.lua @@ -2,8 +2,8 @@ return { ["in-ipv4-bytes"] = 5976, ["in-ipv4-frag-reassembly-unneeded"] = 4, ["in-ipv4-packets"] = 4, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-ipv6-bytes"] = 6136, ["out-ipv6-frag-not"] = 4, ["out-ipv6-packets"] = 4, diff --git a/src/program/lwaftr/tests/data/counters/regressiontest-signedntohl-frags-counters.lua b/src/program/lwaftr/tests/data/counters/regressiontest-signedntohl-frags-counters.lua index 2e0e67c49c..e8089d368b 100644 --- a/src/program/lwaftr/tests/data/counters/regressiontest-signedntohl-frags-counters.lua +++ b/src/program/lwaftr/tests/data/counters/regressiontest-signedntohl-frags-counters.lua @@ -8,6 +8,6 @@ return { ["in-ipv6-frag-needs-reassembly"] = 15, ["in-ipv6-frag-reassembled"] = 5, ["in-ipv6-packets"] = 5, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, } diff --git a/src/program/lwaftr/tests/data/counters/tcp-frominet-bound-ttl1.lua b/src/program/lwaftr/tests/data/counters/tcp-frominet-bound-ttl1.lua index e37641e2e5..f22dc4491a 100644 --- a/src/program/lwaftr/tests/data/counters/tcp-frominet-bound-ttl1.lua +++ b/src/program/lwaftr/tests/data/counters/tcp-frominet-bound-ttl1.lua @@ -6,8 +6,8 @@ return { ["in-ipv4-bytes"] = 66, ["in-ipv4-frag-reassembly-unneeded"] = 1, ["in-ipv4-packets"] = 1, - ["memuse-ipv4-frag-reassembly-buffer"] = 463482888, - ["memuse-ipv6-frag-reassembly-buffer"] = 464549592, + ["memuse-ipv4-frag-reassembly-buffer"] = 728203264, + ["memuse-ipv6-frag-reassembly-buffer"] = 728203264, ["out-icmpv4-bytes"] = 94, ["out-icmpv4-packets"] = 1, ["out-ipv4-bytes"] = 94,