[ovs-dev] [vlan-maint 1/2] mac-learning: Increase MAC learning timeout to 300 seconds.

Ben Pfaff blp at nicira.com
Mon Jan 23 22:43:52 UTC 2012


When Cisco (and other?) routers are configured in high-availability modes,
they use two different MAC addreses.  The router uses MAC 1 only for ARP
replies.  The router uses MAC 2 for forwarding IP packets to end hosts.
When a MAC learning switch is attached to the router, therefore, it will
only learn the location of MAC 1 from ARP replies.  If the end host's ARP
cache refresh timer is longer than the switch's MAC learning timeout, then
packets to the router will be flooded from the MAC learning timeout until
the next ARP reply.

This commit fixes the problem by increasing the MAC learning timeout from
60 seconds to 300 seconds.  According to my reading, Linux uses a 60-second
ARP timeout, old versions of Windows use 2 minutes, and new versions of
Windows use 45 seconds.  FreeBSD and the derived Mac OS use 1200 seconds by
default, so this is not a panacea.

NICS-11.
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
 lib/mac-learning.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/mac-learning.h b/lib/mac-learning.h
index 89a4e90..9c59fa0 100644
--- a/lib/mac-learning.h
+++ b/lib/mac-learning.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, 2010 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2012 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@
 #define MAC_MAX 2048
 
 /* Time, in seconds, before expiring a mac_entry due to inactivity. */
-#define MAC_ENTRY_IDLE_TIME 60
+#define MAC_ENTRY_IDLE_TIME 300
 
 /* Time, in seconds, to lock an entry updated by a gratuitous ARP to avoid
  * relearning based on a reflection from a bond slave. */
-- 
1.7.2.5




More information about the dev mailing list