| Summary: | when using vlanX interface arp ageing work incorrectly | ||
|---|---|---|---|
| Product: | Base System | Reporter: | vova <vova> |
| Component: | kern | Assignee: | Yar Tikhiy <yar> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.0-STABLE | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
vova
2000-06-22 11:20:00 UTC
After some debugging I've found that there is actually two problems:
First - with switching hardware (Inter 460t with 802.1Q capable
firmware), It fails correct deliver broadcasts from trunked port to
untrunked port after untrunked port goes down and then up.
Second - with arp utility, it can't handle arp entries on vlanX
interfaces correctly, there is simple patch for fix arp behavior:
diff -N -u arp.c.orig arp.c
--- usr.sbin/arp/arp.c.orig Fri Jul 7 07:11:48 2000
+++ usr.sbin/arp/arp.c Fri Jul 7 07:11:20 2000
@@ -397,7 +397,7 @@
(rtm->rtm_flags & RTF_LLINFO) &&
!(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
- case IFT_ISO88024: case IFT_ISO88025:
+ case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
goto delete;
}
}
--
TSB Russian Express, Moscow
Vladimir B. Grebenschikov, vova@express.ru
Looking through your patch, I believe it should be the following:
The first hunk supports setting ARP entries, the second is your
patch, the third is to identify the VLAN entries (and is optional).
Index: arp.c
===================================================================
RCS file: /gsmx07/CVSROOT/src/usr.sbin/arp/arp.c,v
retrieving revision 1.22
diff -u -b -r1.22 arp.c
--- arp.c 2000/03/03 13:01:57 1.22
+++ arp.c 2000/08/08 23:45:19
@@ -310,7 +310,7 @@
(rtm->rtm_flags & RTF_LLINFO) &&
!(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
- case IFT_ISO88024: case IFT_ISO88025:
+ case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
goto overwrite;
}
if (doing_proxy == 0) {
@@ -397,7 +397,7 @@
(rtm->rtm_flags & RTF_LLINFO) &&
!(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
- case IFT_ISO88024: case IFT_ISO88025:
+ case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
goto delete;
}
}
@@ -509,6 +509,9 @@
case IFT_ISO88025:
printf(" [token-ring]");
break;
+ case IFT_PROPVIRTUAL:
+ printf(" [vlan]");
+ break;
default:
}
if (sdl->sdl_rcf != NULL) {
Peter
State Changed From-To: open->analyzed I've just committed the fix into -current with respect to the new VLAN interface type. I'll MFC that as soon as I get the approval. Responsible Changed From-To: freebsd-bugs->yar It's me who deals with the problem. State Changed From-To: analyzed->closed Fixed in both -stable & -current. |