Before this commit, multiple L3 hosts were allocated if the same ip
address was seen with multiple mac addresses. We have decided to keep
ip and macs logically sepatated. For this reason, after this commit,
the L3 ip always remains the same even if there are changes in the
mac. A user who wants to monitor mac addresses can use the L2 section
as well as the host pools.
This commit also reverts:
"Add MAC address to the serialized hosts key to fix bad MAC address association and stats"
This reverts commit 89a756fb9a.
Quotas are now checked inline to avoid unacceptable over-quota transmissions.
Quotas were previously checked every 5 minutes and that was causing
unacceptable transmissions. For example, an host sending at 10MB/sec could have
sent 50MB in 5 seconds.
Checking quotas inline also required to keep host pool statistics updated inline.
To preserve the software efficiency, host pool statistics are updated inline only
for bridged interfaces.
Fixes:
- Ingress and egress shapers were swapped for cli2srv direction
- Empty redis was causing bad shapers initialization leading to unpredictable behavior
Improvements:
- incPoolsStats factorized to allow reuse inline
Attempting to build OpenBSD fails for various reasons.
First and foremost, there is a number of packages that have to
be installed as build dependencies
Than, small updates are needed to the autotools files to have autogen.sh
and configure, to exit without errors.
doc/README.OpenBSD describes the whole process in fair detail.
Last but not least, there are type errors that g++ compiler catches in
OpenBSD but not in Linux. To have the build, a few source files
were updated to have effect only in OpenBSD, leaving other operating
systems untouched.
With only one exception, a prototype in include/Flow.h was updated to
stay in sync with the implementation.