Add PPPoE Plugin

Supports 64K PPPoE sessions

This plugin adds three graph nodes:
1) pppoe-input for PPPoE decapsulation
2) pppoe-encap for PPPoE encapsulation
3) pppoe-tap-dispatch for control plane process

Below is the configuration to make PPPoE CP and DP work:
vim /etc/vpp/startup.conf
tuntap {
  enable
  ethernet
  name newtap
}

create pppoe tap tap-if-index 1

//Configure it after a subscriber's PPPoE discovery and PPP link establishment succeeds:
create pppoe session client-ip 100.1.2.1 session-id 1 client-mac 00:11:01:00:00:01

show pppoe fib
show pppoe session

Change-Id: I73e724b6bf7c3e4181a9914c5752da1fa72d7e60
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
This commit is contained in:
Hongjun Ni
2017-07-04 20:11:57 +08:00
committed by Neale Ranns
parent f73d0e2ea6
commit 62f9cdd82c
22 changed files with 3787 additions and 0 deletions

View File

@ -2087,3 +2087,29 @@ class VppPapiProvider(object):
'decap_vrf_id': decap_vrf_id,
'protocol': protocol,
'vni': vni})
def pppoe_add_del_session(
self,
client_ip,
client_mac,
session_id=0,
is_add=1,
is_ipv6=0,
decap_vrf_id=0):
"""
:param is_add: (Default value = 1)
:param is_ipv6: (Default value = 0)
:param client_ip:
:param session_id: (Default value = 0)
:param client_mac:
:param decap_vrf_id: (Default value = 0)
"""
return self.api(self.papi.pppoe_add_del_session,
{'is_add': is_add,
'is_ipv6': is_ipv6,
'session_id': session_id,
'client_ip': client_ip,
'decap_vrf_id': decap_vrf_id,
'client_mac': client_mac})