pppoe: fix VLIB_RX into the pppoe-input node
Previously, RX interface for PPPoE packets was set as the original interface. Now it is set as corresponding PPPoE interface in the "pppoe-input" node. We need to do it because otherwise IP or other settings won't be working onto the PPPoE interface (only on original rx interface). Type: fix Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com> Change-Id: If9cc37608aa5fe685b8278dd99b819b7eddc6c38
This commit is contained in:
committed by
Damjan Marion
parent
b801cd1b31
commit
938af5e271
@@ -181,6 +181,7 @@ VLIB_NODE_FN (pppoe_input_node) (vlib_main_t * vm,
|
||||
|
||||
sw_if_index0 = t0->sw_if_index;
|
||||
len0 = vlib_buffer_length_in_chain (vm, b0);
|
||||
vnet_buffer(b0)->sw_if_index[VLIB_RX] = sw_if_index0;
|
||||
|
||||
pkts_decapsulated ++;
|
||||
stats_n_packets += 1;
|
||||
@@ -274,6 +275,7 @@ VLIB_NODE_FN (pppoe_input_node) (vlib_main_t * vm,
|
||||
|
||||
sw_if_index1 = t1->sw_if_index;
|
||||
len1 = vlib_buffer_length_in_chain (vm, b1);
|
||||
vnet_buffer(b1)->sw_if_index[VLIB_RX] = sw_if_index1;
|
||||
|
||||
pkts_decapsulated ++;
|
||||
stats_n_packets += 1;
|
||||
@@ -398,6 +400,7 @@ VLIB_NODE_FN (pppoe_input_node) (vlib_main_t * vm,
|
||||
|
||||
sw_if_index0 = t0->sw_if_index;
|
||||
len0 = vlib_buffer_length_in_chain (vm, b0);
|
||||
vnet_buffer(b0)->sw_if_index[VLIB_RX] = sw_if_index0;
|
||||
|
||||
pkts_decapsulated ++;
|
||||
stats_n_packets += 1;
|
||||
|
||||
@@ -211,6 +211,7 @@ class TestPPPoE(VppTestCase):
|
||||
self.pg0.remote_mac,
|
||||
self.session_id)
|
||||
pppoe_if.add_vpp_config()
|
||||
pppoe_if.set_unnumbered(self.pg0.sw_if_index)
|
||||
|
||||
#
|
||||
# Send tunneled packets that match the created tunnel and
|
||||
@@ -274,6 +275,7 @@ class TestPPPoE(VppTestCase):
|
||||
self.pg0.remote_mac,
|
||||
self.session_id)
|
||||
pppoe_if.add_vpp_config()
|
||||
pppoe_if.set_unnumbered(self.pg0.sw_if_index)
|
||||
|
||||
#
|
||||
# Send a packet stream that is routed into the session
|
||||
@@ -337,6 +339,7 @@ class TestPPPoE(VppTestCase):
|
||||
self.pg0.remote_mac,
|
||||
self.session_id)
|
||||
pppoe_if.add_vpp_config()
|
||||
pppoe_if.set_unnumbered(self.pg0.sw_if_index)
|
||||
|
||||
#
|
||||
# The double create (create the same session twice) should fail,
|
||||
@@ -445,6 +448,7 @@ class TestPPPoE(VppTestCase):
|
||||
self.pg0.remote_mac,
|
||||
self.session_id)
|
||||
pppoe_if1.add_vpp_config()
|
||||
pppoe_if1.set_unnumbered(self.pg0.sw_if_index)
|
||||
|
||||
# Send PPPoE Discovery 2
|
||||
tx3 = self.create_stream_pppoe_discovery(self.pg2, self.pg1,
|
||||
@@ -465,6 +469,7 @@ class TestPPPoE(VppTestCase):
|
||||
self.pg2.remote_mac,
|
||||
self.session_id + 1)
|
||||
pppoe_if2.add_vpp_config()
|
||||
pppoe_if2.set_unnumbered(self.pg0.sw_if_index)
|
||||
|
||||
#
|
||||
# Send tunneled packets that match the created tunnel and
|
||||
|
||||
@@ -17,6 +17,7 @@ class VppPppoeInterface(VppInterface):
|
||||
self.client_mac = client_mac
|
||||
self.session_id = session_id
|
||||
self.decap_vrf_id = decap_vrf_id
|
||||
self.vpp_sw_if_index = -1
|
||||
|
||||
def add_vpp_config(self):
|
||||
r = self.test.vapi.pppoe_add_del_session(
|
||||
@@ -24,6 +25,7 @@ class VppPppoeInterface(VppInterface):
|
||||
session_id=self.session_id,
|
||||
decap_vrf_id=self.decap_vrf_id)
|
||||
self.set_sw_if_index(r.sw_if_index)
|
||||
self.vpp_sw_if_index = r.sw_if_index
|
||||
self.generate_remote_hosts()
|
||||
|
||||
def remove_vpp_config(self):
|
||||
@@ -33,3 +35,8 @@ class VppPppoeInterface(VppInterface):
|
||||
session_id=self.session_id,
|
||||
decap_vrf_id=self.decap_vrf_id,
|
||||
is_add=0)
|
||||
|
||||
def set_unnumbered(self, swif_iface):
|
||||
self.test.vapi.sw_interface_set_unnumbered(
|
||||
swif_iface,
|
||||
self.vpp_sw_if_index)
|
||||
|
||||
Reference in New Issue
Block a user