On 28/04/2016 05:07, Jeremy wrote:
> On Tue, 26 Apr 2016 17:53:32 -0500
> Adam Thompson <athom...@athompso.net> 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) {

Reply via email to