> On 22 Mar 2019, at 07:34, Ni, Hongjun <hongjun...@intel.com> wrote: > > Hi John, > > For first PADI packet, its destination MAC is broadcast address. > Not sure it is accepted by ethernet-input node?
Sure it does, otherwise arp, dhcp, ... will not work. > Do we need special process to handle it? > 5.1 The PPPoE Active Discovery Initiation (PADI) packet > > > The Host sends the PADI packet with the DESTINATION_ADDR set to the > broadcast address. The CODE field is set to 0x09 and the SESSION_ID > MUST be set to 0x0000. > > Thanks, > Hongjun > > From: vpp-dev@lists.fd.io [mailto:vpp-dev@lists.fd.io] On Behalf Of John Lo > (loj) via Lists.Fd.Io > Sent: Thursday, March 21, 2019 11:34 PM > To: dmar...@me.com; Ni, Hongjun <hongjun...@intel.com> > Cc: vpp-dev@lists.fd.io > Subject: Re: [vpp-dev] Status of PPPoE Plugin > > Thanks for citing the PPPoE RFC 2516, Damjan. The RFC goes on to describe > how to resolve the MAC address for PPPoE sessions in Section 5 in discovery > stage. As such, there is really no “L2 mode” for PPPoE sessions mentioned in > my previous reply in this thread. The root cause of the problem was MAC > address resolution for PPPoE sessions. -John > > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Damjan Marion > via Lists.Fd.Io > Sent: Thursday, March 21, 2019 11:08 AM > To: Ni, Hongjun <hongjun...@intel.com> > Cc: vpp-dev@lists.fd.io > Subject: Re: [vpp-dev] Status of PPPoE Plugin > > > > > On 21 Mar 2019, at 06:20, Ni, Hongjun <hongjun...@intel.com> wrote: > > > > Hi Raj, > > > > I think you may check the Ethernet type, if it is PPPoE packet, then MAC > > check will be skipped. > > > > Thanks, > > Hongjun > > > > -----Original Message----- > > From: vpp-dev@lists.fd.io [mailto:vpp-dev@lists.fd.io] On Behalf Of Raj > > Sent: Wednesday, March 20, 2019 9:48 PM > > To: vpp-dev <vpp-dev@lists.fd.io> > > Cc: alp.ars...@xflowresearch.com; Ni, Hongjun <hongjun...@intel.com> > > Subject: Re: [vpp-dev] Status of PPPoE Plugin > > > > I commented out the offending parts and now PPPoE is working fine. > > > > diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c index > > 53d5b4eb0..7c5f673e0 100755 > > --- a/src/vnet/ethernet/node.c > > +++ b/src/vnet/ethernet/node.c > > @@ -429,14 +429,14 @@ ethernet_input_inline (vlib_main_t * vm, > > } > > else > > { > > + /*if (!ethernet_address_cast (e0->dst_address) && > > (hi->hw_address != 0) && > > !eth_mac_equal ((u8 *) e0, hi->hw_address)) > > error0 = ETHERNET_ERROR_L3_MAC_MISMATCH; > > if (!ethernet_address_cast (e1->dst_address) && > > (hi->hw_address != 0) && > > !eth_mac_equal ((u8 *) e1, hi->hw_address)) > > + error1 = ETHERNET_ERROR_L3_MAC_MISMATCH;*/ > > vlib_buffer_advance (b0, sizeof (ethernet_header_t)); > > determine_next_node (em, variant, 0, type0, b0, > > &error0, &next0); @@ -653,10 +653,10 @@ > > ethernet_input_inline (vlib_main_t * vm, > > } > > else > > { > > + /*if (!ethernet_address_cast (e0->dst_address) && > > (hi->hw_address != 0) && > > !eth_mac_equal ((u8 *) e0, hi->hw_address)) > > + error0 = ETHERNET_ERROR_L3_MAC_MISMATCH;*/ > > vlib_buffer_advance (b0, sizeof (ethernet_header_t)); > > determine_next_node (em, variant, 0, type0, b0, > > &error0, &next0); > > > > I am sure this is not a patch which will be accepted upstream. > > I would say: for sure not. > > > I am not sure how to _correctly_ fix this, so that it will be accepted by > > upstream. If some pointers are given I can submit a patch to get PPPoE > > working correctly again in VPP. > > This is typical case of “shotgun wedding” between control plane and dataplane > over the TAP interface. > > RFC2516 Section 4. clearly says: > > The DESTINATION_ADDR field contains either a unicast Ethernet > destination address, or the Ethernet broadcast address (0xffffffff). > For Discovery packets, the value is either a unicast or broadcast > address as defined in the Discovery section. For PPP session > traffic, this field MUST contain the peer's unicast address as > determined from the Discovery stage. > > The SOURCE_ADDR field MUST contains the Ethernet MAC address of the > source device. > > > So right thing to do here is to make sure that both control and session > packets are using single mac address, preferably MAC address of the VPP > interface where session traffic is received. > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > > View/Reply Online (#12600): https://lists.fd.io/g/vpp-dev/message/12600 > Mute This Topic: https://lists.fd.io/mt/28791570/675294 > Group Owner: vpp-dev+ow...@lists.fd.io > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [l...@cisco.com] > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#12612): https://lists.fd.io/g/vpp-dev/message/12612 Mute This Topic: https://lists.fd.io/mt/28791570/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-