On Tue, Apr 18, 2023 at 07:51:08PM +0000, Samuel Jayden wrote:
> Hello,
> I have one veb interface in OpenBSD 7.2 and 5 ethernet ports are paired
> with this veb. As I understand from the ifconfig output, 4096 mac address
> cache values can be kept in this veb interface .
>
> ifconfig veb10
> veb10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
> index 12 llprio 3
> groups: veb
> em3 flags=3<LEARNING,DISCOVER>
> port 4 ifpriority 0 ifcost 0
> em0 flags=3<LEARNING,DISCOVER>
> port 1 ifpriority 0 ifcost 0
> em1 flags=3<LEARNING,DISCOVER>
> port 2 ifpriority 0 ifcost 0
> ix3 flags=3<LEARNING,DISCOVER>
> port 8 ifpriority 0 ifcost 0
> ix2 flags=3<LEARNING,DISCOVER>
> port 7 ifpriority 0 ifcost 0
> Addresses (max cache: 4096, timeout: 240):
> 2c:f0:5d:73:f8:c4 em1 0 flags=0<>
> ....
>
> When I tried to extend this limit value with the command "ifconfig veb10
> maxaddr 4097", I got the following error message:
> "ifconfig: veb10: Invalid argument"
> The maximum value I can give without this error message is 4096. Isn't this
> value a bit narrow?
maybe. it seemed pretty high when i made it up.
> I have tested that the mac addresses of the connected devices are not
> recorded in the veb interface after exceeding the limit.
>
> I want to switch from Cisco device to OpenBSD in a place where there are
> more than 8 thousand MAC addresses, but I need to exceed this max cache
> size value.
> How can I increase this max cache size value 8192 or higher value?
you change 4096 to a bigger number in the code.
Index: if_etherbridge.c
===================================================================
RCS file: /cvs/src/sys/net/if_etherbridge.c,v
retrieving revision 1.7
diff -u -p -r1.7 if_etherbridge.c
--- if_etherbridge.c 5 Jul 2021 04:17:41 -0000 1.7
+++ if_etherbridge.c 19 Apr 2023 02:25:54 -0000
@@ -675,7 +676,7 @@ int
etherbridge_set_max(struct etherbridge *eb, struct ifbrparam *bparam)
{
if (bparam->ifbrp_csize < 1 ||
- bparam->ifbrp_csize > 4096) /* XXX */
+ bparam->ifbrp_csize > 16384) /* XXX */
return (EINVAL);
/* commit */