I have a beginner question about pppoe.
What was wrong or absent with ppp so they needed to encapsulate PPP packets in Ethernet frames?
Reza and Ivan are completely right. There is nothing wrong with PPP. However, the PPP is intended for use on point-to-point links only - serial leased lines, dial-up analog modems and similar. It is not directly suitable to be used between Ethernet-interconnected devices. However, there may be applications that require running PPP sessions in a point-to-point fashion between a number of devices on an Ethernet segment. One possible usage is the authentication as Ivan suggested, as PPP supports diverse authentication mechanisms. Moreover, using PPP over Ethernet also allows the stations to remain isolated as long as the access device towards which all PPP sessions are established prevents packets received from one PPP session to be sent to other PPP connections.
So these are the motivations behind running PPP over Ethernet. Doing this requires more work, however, than just placing PPP frames inside Ethernet frames. There may be several PPP sessions run over an Ethernet segment and the access device must be able to distinguish between them. Also, the stations need to send the Ethernet-encapsulated PPP frames to a particular access device and they must be able to dynamically discover its MAC address. So the PPPoE is actually a more complex protocol that defines a 6-byte PPPoE header that, among other things, identifies the particular PPP session into which the PPP frame belongs, and also a procedure that allows the station to dynamically discover and negotiate a PPP session with the access device.
You might be interested in reading the RFC 2516 where the PPPoE including the motivation behind it is described in detail.