On 28/04/2016 05:07, Jeremy wrote:
> On Tue, 26 Apr 2016 17:53:32 -0500
> Adam Thompson <[email protected]> wrote:
>> If all else fails, run "ifconfig em2 up", and then "tcpdump -i em2
>> -vvvv -l -n" and see what, if any, traffic is coming from the ONT on
>> the raw ethernet port (this will include the VLAN 10 packets, too).
>> If you're lucky, something it emits will give you a clue.
>> -Adam
>
> OK, so I have heard from my ISP that I need to use PPPoE.
>
> My config is now:
> # cat hostname.em2
> up
>
> #cat hostname.vlan10
> up vlan 10 vlandev em2
>
> #cat /etc/hostname.pppoe0
> !/sbin/ifconfig em2 up
> !/sbin/ifconfig vlan10 up
> inet 0.0.0.0 255.255.255.255 NONE \
> pppoedev vlan10 \
> authproto pap \
> authname "xxxxxxx" \
> authkey "xxxxxx"
> dest 0.0.0.1
>
>
> ifconfig shows me the following:
> # ifconfig
> em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> lladdr 00:11:0a:08:01:57
> priority: 0
> media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
> status: active
> vlan10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> lladdr 00:11:0a:08:01:57
> priority: 0
> vlan: 10 parent interface: em2
> groups: vlan
> status: active
> pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
> priority: 0
> dev: vlan10 state: PADI sent
> sid: 0x0 PADI retries: 25 PADR retries: 0
> sppp: phase establish authproto pap authname "medix21"
> groups: pppoe
> status: no carrier
> inet 0.0.0.0 --> 0.0.0.1 netmask 0xffffffff
>
>
> Finally running tcpdump on the em2 physical port shows this:
> # tcpdump -nettti em2 -vvvv -l -n
> tcpdump: listening on em2, link-type EN10MB
> Apr 28 14:58:26.088559 00:11:0a:08:01:57 ff:ff:ff:ff:ff:ff 8100 36: 802.1Q
> vid 10 pri 3 PPPoE-Discovery
> code Initiation, version 1, type 1, id 0x0000, length 12
> tag Service-Name, length 0
> tag Host-Uniq, length 4 w\257\323\236
> Apr 28 14:59:26.281326 00:11:0a:08:01:57 ff:ff:ff:ff:ff:ff 8100 36: 802.1Q
> vid 10 pri 3 PPPoE-Discovery
> code Initiation, version 1, type 1, id 0x0000, length 12
> tag Service-Name, length 0
> tag Host-Uniq, length 4 w\257\323\236
> ...
>
>
> It looks to me like I cannot contact the PPPoE auth service.
> Note: I have tried this with the pppoedev set to both the
> physical em2 interface and the vlan10 interface with the same
> result. Either I'm connecting to the wrong port on the ONT or
> I'm missing a further piece of the puzzle.
>
Supposing it is the correct port, this looks exactly like the problem I
had with the vlan prio field not being 0 and the provider not ignoring it.
Try if this patch helps, it makes the vlan prio field be 0 all the time:
Index: net/if_vlan.c
===================================================================
RCS file: /cvs/src/sys/net/if_vlan.c,v
retrieving revision 1.151
diff -u -p -r1.151 if_vlan.c
--- net/if_vlan.c 13 Jan 2016 03:18:26 -0000 1.151
+++ net/if_vlan.c 28 Apr 2016 05:11:34 -0000
@@ -270,8 +270,7 @@ vlan_start(struct ifnet *ifp)
*/
} else if ((p->if_capabilities & IFCAP_VLAN_HWTAGGING) &&
(ifv->ifv_type == ETHERTYPE_VLAN)) {
- m->m_pkthdr.ether_vtag = ifv->ifv_tag +
- (prio << EVL_PRIO_BITS);
+ m->m_pkthdr.ether_vtag = ifv->ifv_tag;
m->m_flags |= M_VLANTAG;
} else {
struct ether_vlan_header evh;
@@ -279,8 +278,7 @@ vlan_start(struct ifnet *ifp)
m_copydata(m, 0, ETHER_HDR_LEN, (caddr_t)&evh);
evh.evl_proto = evh.evl_encap_proto;
evh.evl_encap_proto = htons(ifv->ifv_type);
- evh.evl_tag = htons(ifv->ifv_tag +
- (prio << EVL_PRIO_BITS));
+ evh.evl_tag = htons(ifv->ifv_tag);
m_adj(m, ETHER_HDR_LEN);
M_PREPEND(m, sizeof(evh), M_DONTWAIT);
if (m == NULL) {