From nobody@FreeBSD.org  Tue Dec 15 17:49:03 2009
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A3CEA106568D
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Dec 2009 17:49:03 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 7897C8FC21
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Dec 2009 17:49:03 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id nBFHn3t1099195
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Dec 2009 17:49:03 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id nBFHn36D099194;
	Tue, 15 Dec 2009 17:49:03 GMT
	(envelope-from nobody)
Message-Id: <200912151749.nBFHn36D099194@www.freebsd.org>
Date: Tue, 15 Dec 2009 17:49:03 GMT
From: Jeff Blank <jfb@mr-happy.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: em(4) + lagg(4) + vlan(4) generates ISL-tagged frames instead of 802.1q-tagged frames
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         141646
>Category:       kern
>Synopsis:       [em] em(4) + lagg(4) + vlan(4) generates ISL-tagged frames instead of 802.1q-tagged frames
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    eri
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 15 17:50:02 UTC 2009
>Closed-Date:    Tue Dec 28 10:57:12 UTC 2010
>Last-Modified:  Tue Dec 28 10:57:12 UTC 2010
>Originator:     Jeff Blank
>Release:        8.0-RELEASE
>Organization:
>Environment:
FreeBSD asterisk01.tc.mtu.edu 8.0-RELEASE-p1 FreeBSD 8.0-RELEASE-p1 #0: Mon Dec 14 11:14:35 EST 2009     root@asterisk01.tc.mtu.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
Using this em(4) chipset:

em0@pci0:5:0:0: class=0x020000 card=0x135e8086 chip=0x105e8086 rev=0x06 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)'
    class      = network
    subclass   = ethernet
em1@pci0:5:0:1: class=0x020000 card=0x135e8086 chip=0x105e8086 rev=0x06 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)'
    class      = network
    subclass   = ethernet

I configured a lagg interface (lagg0) in failover mode between the two em interfaces and then created two vlan interfaces with "vlandev lagg0" (vlan20, vlan96). Under 7.1-RELEASE on this host, there were no issues. Upon upgrading to 8.0-RELEASE, the host became unable to communicate through either vlan interface. I inspected the traffic generated by the host, and the ethernet frames transmitted were decoded by wireshark as containing ISL tags (??) rather than 802.1q VLAN tags. The host is still able to receive and correctly process q-tagged frames; only outbound frames are problematic.

This issue does not occur when the vlan interfaces' vlandevs are em0 or em1. If I assign an IP address to lagg0 when the switch port is expecting and transmitting untagged frames, there are likewise no issues. This issue does not occur with the same host's bce(4) interfaces (substitute bce0/1 for em0/1 in how-to-repeat).
>How-To-Repeat:
Boot a system containing two em(4) interfaces (may need to be the above chipset) with no network configuration in rc.conf and execute the following commands as root:

# ifconfig em0 up
# ifconfig em1 up
# ifconfig lagg0 create laggproto failover laggport em0 laggport em1 up
# ifconfig vlan20 create vlan 20 vlandev lagg0
# ifconfig vlan20 <ip>/<mask> up

Generate traffic on the configured IP network (e. g., ping), examine the traffic transmitted, and verify that ISL tags instead of 802.1q VLAN tags are present on the frames.
>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-net 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Tue Dec 15 19:15:47 UTC 2009 
Responsible-Changed-Why:  
I'm not sure this is particular to em(4), but the assignee is probably 
net@ in any case. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=141646 

From: "Anishchuk, Igor" <igor.anishchuk@f-secure.com>
To: <bug-followup@FreeBSD.org>,
	<jfb@mr-happy.com>
Cc:  
Subject: Re: kern/141646: [em] em(4) + lagg(4) + vlan(4) generates ISL-tagged frames instead of 802.1q-tagged frames
Date: Fri, 29 Jan 2010 16:39:08 +0200

 This is a multi-part message in MIME format.
 
 ------_=_NextPart_001_01CAA0F0.D10A7257
 Content-Type: text/plain;
 	charset="utf-8"
 Content-Transfer-Encoding: base64
 
 SGVsbG8hDQoNCiANCg0KSSBoYXZlIHRoZSBzYW1lIGlzc3VlLCBidXQgSSBzdXNwZWN0IGl0IGlz
 IG5vdCBJU0wtdGFnZ2VkIHBhY2tldHMsIGJ1dA0KdHdpY2UtdGFnZ2VkIDgwMi4xcSBwYWNrZXRz
 LiBUaGVyZSBpcyBhIHdvcmthcm91bmQgZm9yIHRoZSBwcm9ibGVtOg0KDQogDQoNCmlmY29uZmln
 X2VtMD0iLXZsYW5od3RhZyB1cCINCg0KaWZjb25maWdfZW0xPSItdmxhbmh3dGFnIHVwIg0KDQpp
 ZmNvbmZpZ19lbTI9Ii12bGFuaHd0YWcgdXAiDQoNCmlmY29uZmlnX2VtMz0iLXZsYW5od3RhZyB1
 cCINCg0KY2xvbmVkX2ludGVyZmFjZXM9ImxhZ2cwIHZsYW4xMCINCg0KaWZjb25maWdfbGFnZzA9
 ImxhZ2dwcm90byBmZWMgbGFnZ3BvcnQgZW0wIGxhZ2dwb3J0IGVtMSBsYWdncG9ydCBlbTIgbGFn
 Z3BvcnQNCmVtMyB1cCINCg0KaWZjb25maWdfdmxhbjEwPSJ2bGFuIDEwIHZsYW5kZXYgbGFnZzAg
 MTkyLjE2OC4xMC4yLzI0Ig0KDQogDQoNClJlZ2FyZHMsDQoNCiANCg0KIA0KDQpJZ29yIEFuaXNo
 Y2h1aw0KU2VuaW9yIFN5c3RlbXMgQXJjaGl0ZWN0LCBQcm9kdWN0aW9uIGFuZCBTaXRlcw0KDQpG
 LVNlY3VyZSBDb3Jwb3JhdGlvbg0KTW9iaWxlICszNTggNDAgODM5IDM2MjANCg0KUHJvdGVjdGlu
 ZyB0aGUgaXJyZXBsYWNlYWJsZSBJIHd3dy5mLXNlY3VyZS5jb20gPGh0dHA6Ly93d3cuZi1zZWN1
 cmUuY29tLz4gDQoNCiANCg0K
 
 ------_=_NextPart_001_01CAA0F0.D10A7257
 Content-Type: text/html;
 	charset="utf-8"
 Content-Transfer-Encoding: base64
 
 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
 bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
 YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6eD0idXJuOnNjaGVtYXMtbWljcm9z
 b2Z0LWNvbTpvZmZpY2U6ZXhjZWwiIHhtbG5zOnA9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206
 b2ZmaWNlOnBvd2VycG9pbnQiIHhtbG5zOmE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2Zm
 aWNlOmFjY2VzcyIgeG1sbnM6ZHQ9InV1aWQ6QzJGNDEwMTAtNjVCMy0xMWQxLUEyOUYtMDBBQTAw
 QzE0ODgyIiB4bWxuczpzPSJ1dWlkOkJEQzZFM0YwLTZEQTMtMTFkMS1BMkEzLTAwQUEwMEMxNDg4
 MiIgeG1sbnM6cnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206cm93c2V0IiB4bWxuczp6PSIj
 Um93c2V0U2NoZW1hIiB4bWxuczpiPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpw
 dWJsaXNoZXIiIHhtbG5zOnNzPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpzcHJl
 YWRzaGVldCIgeG1sbnM6Yz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6Y29tcG9u
 ZW50OnNwcmVhZHNoZWV0IiB4bWxuczpvZGM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2Zm
 aWNlOm9kYyIgeG1sbnM6b2E9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmFjdGl2
 YXRpb24iIHhtbG5zOmh0bWw9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiIHhtbG5z
 OnE9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIiB4bWxuczpydGM9
 Imh0dHA6Ly9taWNyb3NvZnQuY29tL29mZmljZW5ldC9jb25mZXJlbmNpbmciIHhtbG5zOkQ9IkRB
 VjoiIHhtbG5zOlJlcGw9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vcmVwbC8iIHhtbG5z
 Om10PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3NoYXJlcG9pbnQvc29hcC9tZWV0aW5n
 cy8iIHhtbG5zOngyPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9leGNlbC8y
 MDAzL3htbCIgeG1sbnM6cHBkYT0iaHR0cDovL3d3dy5wYXNzcG9ydC5jb20vTmFtZVNwYWNlLnhz
 ZCIgeG1sbnM6b2lzPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3NoYXJlcG9pbnQvc29h
 cC9vaXMvIiB4bWxuczpkaXI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2lu
 dC9zb2FwL2RpcmVjdG9yeS8iIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3ht
 bGRzaWcjIiB4bWxuczpkc3A9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2lu
 dC9kc3AiIHhtbG5zOnVkYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kYXRhL3VkYyIg
 eG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6c3ViPSJo
 dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3NoYXJlcG9pbnQvc29hcC8yMDAyLzEvYWxlcnRz
 LyIgeG1sbnM6ZWM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyIgeG1sbnM6c3A9
 Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC8iIHhtbG5zOnNwcz0iaHR0
 cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9zaGFyZXBvaW50L3NvYXAvIiB4bWxuczp4c2k9Imh0
 dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp1ZGNzPSJodHRw
 Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RhdGEvdWRjL3NvYXAiIHhtbG5zOnVkY3hmPSJodHRw
 Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RhdGEvdWRjL3htbGZpbGUiIHhtbG5zOnVkY3AycD0i
 aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kYXRhL3VkYy9wYXJ0dG9wYXJ0IiB4bWxuczp3
 Zj0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9zaGFyZXBvaW50L3NvYXAvd29ya2Zsb3cv
 IiB4bWxuczpkc3NzPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2Rp
 Z3NpZy1zZXR1cCIgeG1sbnM6ZHNzaT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZp
 Y2UvMjAwNi9kaWdzaWciIHhtbG5zOm1kc3NpPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0
 cy5vcmcvcGFja2FnZS8yMDA2L2RpZ2l0YWwtc2lnbmF0dXJlIiB4bWxuczptdmVyPSJodHRwOi8v
 c2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNiIgeG1s
 bnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4
 bWxuczptcmVscz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAw
 Ni9yZWxhdGlvbnNoaXBzIiB4bWxuczpzcHdwPSJodHRwOi8vbWljcm9zb2Z0LmNvbS9zaGFyZXBv
 aW50L3dlYnBhcnRwYWdlcyIgeG1sbnM6ZXgxMnQ9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j
 b20vZXhjaGFuZ2Uvc2VydmljZXMvMjAwNi90eXBlcyIgeG1sbnM6ZXgxMm09Imh0dHA6Ly9zY2hl
 bWFzLm1pY3Jvc29mdC5jb20vZXhjaGFuZ2Uvc2VydmljZXMvMjAwNi9tZXNzYWdlcyIgeG1sbnM6
 cHB0c2w9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC9zb2FwL1NsaWRl
 TGlicmFyeS8iIHhtbG5zOnNwc2w9Imh0dHA6Ly9taWNyb3NvZnQuY29tL3dlYnNlcnZpY2VzL1No
 YXJlUG9pbnRQb3J0YWxTZXJ2ZXIvUHVibGlzaGVkTGlua3NTZXJ2aWNlIiB4bWxuczpaPSJ1cm46
 c2NoZW1hcy1taWNyb3NvZnQtY29tOiIgeG1sbnM6c3Q9IiYjMTsiIHhtbG5zPSJodHRwOi8vd3d3
 LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PUNvbnRl
 bnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1ldGEgbmFtZT1H
 ZW5lcmF0b3IgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTIgKGZpbHRlcmVkIG1lZGl1bSkiPg0K
 PHN0eWxlPg0KPCEtLQ0KIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCiBAZm9udC1mYWNlDQoJe2Zv
 bnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7
 fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAy
 IDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCXBhbm9z
 ZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkFy
 aWFsIEJvbGQiO30NCiAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KIHAuTXNvTm9ybWFsLCBsaS5N
 c29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w
 MDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt
 c2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5
 Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0
 ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K
 CWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvQWNldGF0
 ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
 Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCglt
 YXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjguMHB0Ow0KCWZvbnQtZmFtaWx5OiJU
 YWhvbWEiLCJzYW5zLXNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUtdHlw
 ZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7
 DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUt
 bmFtZToiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
 c3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IjsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1z
 ZXJpZiI7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7fQ0K
 QHBhZ2UgU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjIuMGNtIDQy
 LjVwdCAyLjBjbSAzLjBjbTt9DQpkaXYuU2VjdGlvbjENCgl7cGFnZTpTZWN0aW9uMTt9DQotLT4N
 Cjwvc3R5bGU+DQo8IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCiA8bzpzaGFwZWRlZmF1bHRzIHY6
 ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBn
 dGUgbXNvIDldPjx4bWw+DQogPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KICA8bzppZG1h
 cCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCiA8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5k
 aWZdLS0+DQo8L2hlYWQ+DQoNCjxib2R5IGxhbmc9RU4tVVMgbGluaz1ibHVlIHZsaW5rPXB1cnBs
 ZT4NCg0KPGRpdiBjbGFzcz1TZWN0aW9uMT4NCg0KPHAgY2xhc3M9TXNvTm9ybWFsPkhlbGxvITxv
 OnA+PC9vOnA+PC9wPg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+
 DQoNCjxwIGNsYXNzPU1zb05vcm1hbD5JIGhhdmUgdGhlIHNhbWUgaXNzdWUsIGJ1dCBJIHN1c3Bl
 Y3QgaXQgaXMgbm90IElTTC10YWdnZWQNCnBhY2tldHMsIGJ1dCB0d2ljZS10YWdnZWQgODAyLjFx
 IHBhY2tldHMuIFRoZXJlIGlzIGEgd29ya2Fyb3VuZCBmb3IgdGhlDQpwcm9ibGVtOjxvOnA+PC9v
 OnA+PC9wPg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+DQoNCjxw
 IGNsYXNzPU1zb05vcm1hbD5pZmNvbmZpZ19lbTA9JnF1b3Q7LXZsYW5od3RhZyB1cCZxdW90Ozxv
 OnA+PC9vOnA+PC9wPg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+aWZjb25maWdfZW0xPSZxdW90Oy12
 bGFuaHd0YWcgdXAmcXVvdDs8bzpwPjwvbzpwPjwvcD4NCg0KPHAgY2xhc3M9TXNvTm9ybWFsPmlm
 Y29uZmlnX2VtMj0mcXVvdDstdmxhbmh3dGFnIHVwJnF1b3Q7PG86cD48L286cD48L3A+DQoNCjxw
 IGNsYXNzPU1zb05vcm1hbD5pZmNvbmZpZ19lbTM9JnF1b3Q7LXZsYW5od3RhZyB1cCZxdW90Ozxv
 OnA+PC9vOnA+PC9wPg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+Y2xvbmVkX2ludGVyZmFjZXM9JnF1
 b3Q7bGFnZzAgdmxhbjEwJnF1b3Q7PG86cD48L286cD48L3A+DQoNCjxwIGNsYXNzPU1zb05vcm1h
 bD5pZmNvbmZpZ19sYWdnMD0mcXVvdDtsYWdncHJvdG8gZmVjIGxhZ2dwb3J0IGVtMCBsYWdncG9y
 dCBlbTENCmxhZ2dwb3J0IGVtMiBsYWdncG9ydCBlbTMgdXAmcXVvdDs8bzpwPjwvbzpwPjwvcD4N
 Cg0KPHAgY2xhc3M9TXNvTm9ybWFsPmlmY29uZmlnX3ZsYW4xMD0mcXVvdDt2bGFuIDEwIHZsYW5k
 ZXYgbGFnZzANCjE5Mi4xNjguMTAuMi8yNCZxdW90OzxvOnA+PC9vOnA+PC9wPg0KDQo8cCBjbGFz
 cz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+DQoNCjxwIGNsYXNzPU1zb05vcm1hbD5S
 ZWdhcmRzLDxvOnA+PC9vOnA+PC9wPg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8
 L286cD48L3A+DQoNCjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCg0K
 PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1p
 bHk6IkFyaWFsIEJvbGQiOw0KY29sb3I6IzYyNjk3MSc+SWdvciBBbmlzaGNodWs8YnI+DQo8L3Nw
 YW4+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseToiQXJpYWwiLCJzYW5z
 LXNlcmlmIjsNCmNvbG9yOiM2MjY5NzEnPlNlbmlvciBTeXN0ZW1zIEFyY2hpdGVjdCwgUHJvZHVj
 dGlvbiBhbmQgU2l0ZXM8YnI+DQo8L3NwYW4+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo5LjBwdDtm
 b250LWZhbWlseToiQXJpYWwiLCJzYW5zLXNlcmlmIjsNCmNvbG9yOiM2MDY3NkYnPjxicj4NCjwv
 c3Bhbj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiJBcmlhbCIsInNh
 bnMtc2VyaWYiOw0KY29sb3I6IzYyNjk3MSc+Ri1TZWN1cmUgQ29ycG9yYXRpb248YnI+DQpNb2Jp
 bGUgKzM1OCA0MCA4MzkgMzYyMDxicj4NCjxicj4NClByb3RlY3RpbmcgdGhlIGlycmVwbGFjZWFi
 bGUgSSA8YSBocmVmPSJodHRwOi8vd3d3LmYtc2VjdXJlLmNvbS8iPjxzcGFuDQpzdHlsZT0nY29s
 b3I6Ymx1ZSc+d3d3LmYtc2VjdXJlLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9w
 Pg0KDQo8cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+DQoNCjwvZGl2Pg0K
 DQo8L2JvZHk+DQoNCjwvaHRtbD4NCg==
 
 ------_=_NextPart_001_01CAA0F0.D10A7257--

From: "Anishchuk, Igor" <igor.anishchuk@f-secure.com>
To: <bug-followup@FreeBSD.org>,
	<jfb@mr-happy.com>
Cc:  
Subject: Re: kern/141646: [em] em(4) + lagg(4) + vlan(4) generates ISL-tagged frames instead of 802.1q-tagged frames
Date: Fri, 29 Jan 2010 21:16:57 +0200

 SGVsbG8hDQoNCk15IGFwb2xvZ2llcyBmb3IgdGhlIHByZXZpb3VzIG1lc3NhZ2UuDQoNCkkgaGF2
 ZSB0aGUgc2FtZSBpc3N1ZSwgYnV0IEkgc3VzcGVjdCBpdCBpcyBub3QgSVNMLXRhZ2dlZCBwYWNr
 ZXRzLCBidXQNCnR3aWNlLXRhZ2dlZCA4MDIuMXEgcGFja2V0cy4gVGhlcmUgaXMgYSB3b3JrYXJv
 dW5kIGZvciB0aGUgcHJvYmxlbToNCg0KaWZjb25maWdfZW0wPSItdmxhbmh3dGFnIHVwIg0KaWZj
 b25maWdfZW0xPSItdmxhbmh3dGFnIHVwIg0KaWZjb25maWdfZW0yPSItdmxhbmh3dGFnIHVwIg0K
 aWZjb25maWdfZW0zPSItdmxhbmh3dGFnIHVwIg0KY2xvbmVkX2ludGVyZmFjZXM9ImxhZ2cwIHZs
 YW4xMCINCmlmY29uZmlnX2xhZ2cwPSJsYWdncHJvdG8gZmVjIGxhZ2dwb3J0IGVtMCBsYWdncG9y
 dCBlbTEgbGFnZ3BvcnQgZW0yIGxhZ2dwb3J0DQplbTMgdXAiDQppZmNvbmZpZ192bGFuMTA9InZs
 YW4gMTAgdmxhbmRldiBsYWdnMCAxOTIuMTY4LjEwLjIvMjQiDQoNClJlZ2FyZHMsDQoNCg0KSWdv
 ciBBbmlzaGNodWsNClNlbmlvciBTeXN0ZW1zIEFyY2hpdGVjdCwgUHJvZHVjdGlvbiBhbmQgU2l0
 ZXMNCg0KRi1TZWN1cmUgQ29ycG9yYXRpb24NCk1vYmlsZSArMzU4IDQwIDgzOSAzNjIwDQoNClBy
 b3RlY3RpbmcgdGhlIGlycmVwbGFjZWFibGUgSSB3d3cuZi1zZWN1cmUuY29tDQoNCg==

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/141646: commit references a PR
Date: Sat,  6 Feb 2010 13:49:48 +0000 (UTC)

 Author: eri
 Date: Sat Feb  6 13:49:35 2010
 New Revision: 203548
 URL: http://svn.freebsd.org/changeset/base/203548
 
 Log:
   Propagate the vlan eventis to the underlying interfaces/members so they can do initialization of hw related features.
   
   PR:	kern/141646
   Reviewed by:	thompsa
   Approved by:	thompsa(co-mentor)
   MFC after:	2 weeks
 
 Modified:
   head/sys/net/if_lagg.c
   head/sys/net/if_lagg.h
 
 Modified: head/sys/net/if_lagg.c
 ==============================================================================
 --- head/sys/net/if_lagg.c	Sat Feb  6 13:39:08 2010	(r203547)
 +++ head/sys/net/if_lagg.c	Sat Feb  6 13:49:35 2010	(r203548)
 @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
  #include <sys/lock.h>
  #include <sys/rwlock.h>
  #include <sys/taskqueue.h>
 +#include <sys/eventhandler.h>
  
  #include <net/ethernet.h>
  #include <net/if.h>
 @@ -198,6 +199,50 @@ static moduledata_t lagg_mod = {
  
  DECLARE_MODULE(if_lagg, lagg_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
  
 +#if __FreeBSD_version >= 800000
 +/*
 + * This routine is run via an vlan
 + * config EVENT
 + */
 +static void
 +lagg_register_vlan(void *arg, struct ifnet *ifp, u_int16_t vtag)
 +{
 +        struct lagg_softc       *sc = ifp->if_softc;
 +        struct lagg_port        *lp;
 +
 +        if (ifp->if_softc !=  arg)   /* Not our event */
 +                return;
 +
 +        LAGG_RLOCK(sc);
 +        if (!SLIST_EMPTY(&sc->sc_ports)) {
 +                SLIST_FOREACH(lp, &sc->sc_ports, lp_entries)
 +                        EVENTHANDLER_INVOKE(vlan_config, lp->lp_ifp, vtag);
 +        }
 +        LAGG_RUNLOCK(sc);
 +}
 +
 +/*
 + * This routine is run via an vlan
 + * unconfig EVENT
 + */
 +static void
 +lagg_unregister_vlan(void *arg, struct ifnet *ifp, u_int16_t vtag)
 +{
 +        struct lagg_softc       *sc = ifp->if_softc;
 +        struct lagg_port        *lp;
 +
 +        if (ifp->if_softc !=  arg)   /* Not our event */
 +                return;
 +
 +        LAGG_RLOCK(sc);
 +        if (!SLIST_EMPTY(&sc->sc_ports)) {
 +                SLIST_FOREACH(lp, &sc->sc_ports, lp_entries)
 +                        EVENTHANDLER_INVOKE(vlan_unconfig, lp->lp_ifp, vtag);
 +        }
 +        LAGG_RUNLOCK(sc);
 +}
 +#endif
 +
  static int
  lagg_clone_create(struct if_clone *ifc, int unit, caddr_t params)
  {
 @@ -253,6 +298,13 @@ lagg_clone_create(struct if_clone *ifc, 
  	 */
  	ether_ifattach(ifp, eaddr);
  
 +#if __FreeBSD_version >= 800000
 +	sc->vlan_attach = EVENTHANDLER_REGISTER(vlan_config,
 +		lagg_register_vlan, sc, EVENTHANDLER_PRI_FIRST);
 +	sc->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig,
 +		lagg_unregister_vlan, sc, EVENTHANDLER_PRI_FIRST);
 +#endif
 +
  	/* Insert into the global list of laggs */
  	mtx_lock(&lagg_list_mtx);
  	SLIST_INSERT_HEAD(&lagg_list, sc, sc_entries);
 @@ -272,6 +324,11 @@ lagg_clone_destroy(struct ifnet *ifp)
  	lagg_stop(sc);
  	ifp->if_flags &= ~IFF_UP;
  
 +#if __FreeBSD_version >= 800000
 +	EVENTHANDLER_DEREGISTER(vlan_config, sc->vlan_attach);
 +	EVENTHANDLER_DEREGISTER(vlan_unconfig, sc->vlan_detach);
 +#endif
 +
  	/* Shutdown and remove lagg ports */
  	while ((lp = SLIST_FIRST(&sc->sc_ports)) != NULL)
  		lagg_port_destroy(lp, 1);
 
 Modified: head/sys/net/if_lagg.h
 ==============================================================================
 --- head/sys/net/if_lagg.h	Sat Feb  6 13:39:08 2010	(r203547)
 +++ head/sys/net/if_lagg.h	Sat Feb  6 13:49:35 2010	(r203548)
 @@ -198,6 +198,10 @@ struct lagg_softc {
  	void	(*sc_lladdr)(struct lagg_softc *);
  	void	(*sc_req)(struct lagg_softc *, caddr_t);
  	void	(*sc_portreq)(struct lagg_port *, caddr_t);
 +#if __FreeBSD_version >= 800000
 +	eventhandler_tag vlan_attach;
 +	eventhandler_tag vlan_detach;
 +#endif
  };
  
  struct lagg_port {
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->patched 
State-Changed-By: eri 
State-Changed-When: Mon Feb 8 21:00:22 UTC 2010 
State-Changed-Why:  


http://www.freebsd.org/cgi/query-pr.cgi?pr=141646 
Responsible-Changed-From-To: freebsd-net->eri 
Responsible-Changed-By: eri 
Responsible-Changed-When: Mon Feb 8 21:31:16 UTC 2010 
Responsible-Changed-Why:  
Take ownership. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=141646 

From: =?Windows-1251?B?zOj14OjrIMzu7eD4uOI=?= <postmaster@softsearch.ru>
To: bug-followup@FreeBSD.org, jfb@mr-happy.com
Cc:  
Subject: Re: kern/141646: [em] em(4) + lagg(4) + vlan(4) generates ISL-tagged frames instead of 802.1q-tagged frames
Date: Fri, 18 Jun 2010 00:25:03 +0400

 MFC this patch to 8.1, please.
 

From: Eugene Grosbein <egrosbein@rdtc.ru>
To: bug-followup@FreeBSD.org
Cc: eri@FreeBSD.org
Subject: Re: kern/141646: [em] em(4) + lagg(4) + vlan(4) generates ISL-tagged
 frames instead of 802.1q-tagged frames
Date: Wed, 01 Dec 2010 18:44:52 +0600

 Please perform MFC to RELENG_8 before code freeze for 8.2-RELEASE.
 I run 8.2-PRERELEASE with this patch, it works.
 
 Eugene Grosbein

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/141646: commit references a PR
Date: Mon, 27 Dec 2010 18:55:25 +0000 (UTC)

 Author: oleg
 Date: Mon Dec 27 18:55:16 2010
 New Revision: 216741
 URL: http://svn.freebsd.org/changeset/base/216741
 
 Log:
   MFC r203548:
   
   Propagate the vlan events to the underlying interfaces/members so they
   can do initialization of hw related features.
   
   PR:		kern/141646
   Approved by:	re (bz)
 
 Modified:
   releng/8.2/sys/net/if_lagg.c
   releng/8.2/sys/net/if_lagg.h
 Directory Properties:
   releng/8.2/sys/   (props changed)
   releng/8.2/sys/amd64/include/xen/   (props changed)
   releng/8.2/sys/cddl/contrib/opensolaris/   (props changed)
   releng/8.2/sys/contrib/dev/acpica/   (props changed)
   releng/8.2/sys/contrib/pf/   (props changed)
 
 Modified: releng/8.2/sys/net/if_lagg.c
 ==============================================================================
 --- releng/8.2/sys/net/if_lagg.c	Mon Dec 27 16:02:14 2010	(r216740)
 +++ releng/8.2/sys/net/if_lagg.c	Mon Dec 27 18:55:16 2010	(r216741)
 @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
  #include <sys/lock.h>
  #include <sys/rwlock.h>
  #include <sys/taskqueue.h>
 +#include <sys/eventhandler.h>
  
  #include <net/ethernet.h>
  #include <net/if.h>
 @@ -204,6 +205,50 @@ static moduledata_t lagg_mod = {
  
  DECLARE_MODULE(if_lagg, lagg_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
  
 +#if __FreeBSD_version >= 800000
 +/*
 + * This routine is run via an vlan
 + * config EVENT
 + */
 +static void
 +lagg_register_vlan(void *arg, struct ifnet *ifp, u_int16_t vtag)
 +{
 +        struct lagg_softc       *sc = ifp->if_softc;
 +        struct lagg_port        *lp;
 +
 +        if (ifp->if_softc !=  arg)   /* Not our event */
 +                return;
 +
 +        LAGG_RLOCK(sc);
 +        if (!SLIST_EMPTY(&sc->sc_ports)) {
 +                SLIST_FOREACH(lp, &sc->sc_ports, lp_entries)
 +                        EVENTHANDLER_INVOKE(vlan_config, lp->lp_ifp, vtag);
 +        }
 +        LAGG_RUNLOCK(sc);
 +}
 +
 +/*
 + * This routine is run via an vlan
 + * unconfig EVENT
 + */
 +static void
 +lagg_unregister_vlan(void *arg, struct ifnet *ifp, u_int16_t vtag)
 +{
 +        struct lagg_softc       *sc = ifp->if_softc;
 +        struct lagg_port        *lp;
 +
 +        if (ifp->if_softc !=  arg)   /* Not our event */
 +                return;
 +
 +        LAGG_RLOCK(sc);
 +        if (!SLIST_EMPTY(&sc->sc_ports)) {
 +                SLIST_FOREACH(lp, &sc->sc_ports, lp_entries)
 +                        EVENTHANDLER_INVOKE(vlan_unconfig, lp->lp_ifp, vtag);
 +        }
 +        LAGG_RUNLOCK(sc);
 +}
 +#endif
 +
  static int
  lagg_clone_create(struct if_clone *ifc, int unit, caddr_t params)
  {
 @@ -259,6 +304,13 @@ lagg_clone_create(struct if_clone *ifc, 
  	 */
  	ether_ifattach(ifp, eaddr);
  
 +#if __FreeBSD_version >= 800000
 +	sc->vlan_attach = EVENTHANDLER_REGISTER(vlan_config,
 +		lagg_register_vlan, sc, EVENTHANDLER_PRI_FIRST);
 +	sc->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig,
 +		lagg_unregister_vlan, sc, EVENTHANDLER_PRI_FIRST);
 +#endif
 +
  	/* Insert into the global list of laggs */
  	mtx_lock(&lagg_list_mtx);
  	SLIST_INSERT_HEAD(&lagg_list, sc, sc_entries);
 @@ -278,6 +330,11 @@ lagg_clone_destroy(struct ifnet *ifp)
  	lagg_stop(sc);
  	ifp->if_flags &= ~IFF_UP;
  
 +#if __FreeBSD_version >= 800000
 +	EVENTHANDLER_DEREGISTER(vlan_config, sc->vlan_attach);
 +	EVENTHANDLER_DEREGISTER(vlan_unconfig, sc->vlan_detach);
 +#endif
 +
  	/* Shutdown and remove lagg ports */
  	while ((lp = SLIST_FIRST(&sc->sc_ports)) != NULL)
  		lagg_port_destroy(lp, 1);
 
 Modified: releng/8.2/sys/net/if_lagg.h
 ==============================================================================
 --- releng/8.2/sys/net/if_lagg.h	Mon Dec 27 16:02:14 2010	(r216740)
 +++ releng/8.2/sys/net/if_lagg.h	Mon Dec 27 18:55:16 2010	(r216741)
 @@ -198,6 +198,10 @@ struct lagg_softc {
  	void	(*sc_lladdr)(struct lagg_softc *);
  	void	(*sc_req)(struct lagg_softc *, caddr_t);
  	void	(*sc_portreq)(struct lagg_port *, caddr_t);
 +#if __FreeBSD_version >= 800000
 +	eventhandler_tag vlan_attach;
 +	eventhandler_tag vlan_detach;
 +#endif
  };
  
  struct lagg_port {
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: oleg 
State-Changed-When: Tue Dec 28 10:56:27 UTC 2010 
State-Changed-Why:  
Patch commited to RELENG_8 & RELENG_8_2. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=141646 
>Unformatted:
