I think the way to not create TX nodes for PPPoE interfaces would be to just 
remove the .tx_function specified in its device class init in 
src/plugin/pppoe/pppoe.c:

/* *INDENT-OFF* */
VNET_DEVICE_CLASS (pppoe_device_class,static) = {
  .name = "PPPoE",
  .format_device_name = format_pppoe_name,
  .tx_function = dummy_interface_tx,   <== remove this line
  .admin_up_down_function = pppoe_interface_admin_up_down,
};
/* *INDENT-ON* */

The tx_function specified above is causing VPP infra to create a TX node for 
each PPPoE interfaces with this dummy-tx function which is clearly not used.

Regards,
John

From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Abeeha Aqeel
Sent: Friday, April 05, 2019 4:07 AM
To: dmar...@me.com
Cc: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] VPP register node change upper limit

The pppoe plugin?


Regards,

Abeeha Aqeel
Network Design Engineer
Xflow Research Inc.
+923245062309 (GMT+5)
abeeha.aq...@xflowresearch.com<mailto:abeeha.aq...@xflowresearch.com>
www.xflowresearch.com<http://www.xflowresearch.com/>

[cid:6e5d1814-0a3d-444b-9050-060db1465f05]


From: Damjan Marion via Lists.Fd.Io<mailto:dmarion=me....@lists.fd.io>
Sent: Friday, April 5, 2019 1:03 PM
To: Abeeha Aqeel<mailto:abeeha.aq...@xflowresearch.com>
Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] VPP register node change upper limit


On 5 Apr 2019, at 08:31, Abeeha Aqeel 
<abeeha.aq...@xflowresearch.com<mailto:abeeha.aq...@xflowresearch.com>> wrote:

Can you please suggest what other lighter ways can be used to deal with a large 
number of sessions ?

Currently, I’ve changed the vlib_error_t to use 14 bits for node. That gives me 
1<<14 node indices  and roughly 7000-8000 interfaces. To further increase the 
number of sessions is it suitable to use 16 bits for node giving approximately 
30,000 interfaces? Will this effect any other critical functionality?

That code is simply wrong, and it needs to be rewritten….



From: Damjan Marion via Lists.Fd.Io<mailto:dmarion=me....@lists.fd.io>
Sent: Monday, February 4, 2019 12:43 PM
To: Abeeha Aqeel<mailto:abeeha.aq...@xflowresearch.com>
Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] VPP register node change upper limit


It is a bit of shame that that plugin doesn’t scale. Somebody will need to 
rewrite that plugin to make it right, i.e simple use of sub-interfaces will 
likely make this limitation to dissapear...

—
Damjan

On Feb 4, 2019, at 5:56 AM, Abeeha Aqeel 
<abeeha.aq...@xflowresearch.com<mailto:abeeha.aq...@xflowresearch.com>> wrote:

I am using the vpp pppoe plugin and that’s how its working. I do see an option 
in the vnet/interface.c to create interfaces that do not need TX nodes, but I 
am not sure how to use that.

Also I can not figure out where the nodes created along with the pppoe sessions 
are being used as they do not show up in the “show runtime” or the trace of 
packets.

Regards,

Abeeha

From: Abeeha Aqeel<mailto:abeeha.aq...@xflowresearch.com>
Sent: Friday, February 1, 2019 5:36 PM
Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: FW: [vpp-dev] VPP register node change upper limit




From: Abeeha Aqeel<mailto:abeeha.aq...@xflowresearch.com>
Sent: Friday, February 1, 2019 5:32 PM
To: dmar...@me.com<mailto:dmar...@me.com>
Subject: RE: [vpp-dev] VPP register node change upper limit

I am using the vpp pppoe plugin and that’s how its working. I do see an option 
in the vnet/interface.c to create interfaces that do not need TX nodes, but I 
am not sure how to use that.

Also I can not figure out where the nodes created along with the pppoe sessions 
are being used as they do not show up in the “show runtime” or the trace of 
packets.



From: Damjan Marion via Lists.Fd.Io<mailto:dmarion=me....@lists.fd.io>
Sent: Friday, February 1, 2019 5:23 PM
To: Abeeha Aqeel<mailto:abeeha.aq...@xflowresearch.com>
Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] VPP register node change upper limit



On 1 Feb 2019, at 11:32, Abeeha Aqeel 
<abeeha.aq...@xflowresearch.com<mailto:abeeha.aq...@xflowresearch.com>> wrote:

Dear All,

I am trying to create 64k PPPoE sessions with VPP but VPP crashes after 
creating 216 sessions each time. From the system logs it seems that it crashes 
while trying to register a node and that node’s index is greater than the limit 
(1024). (attached screenshot of the trace)

From the “show vlib graph”, I can see that two new nodes are registered for 
each session i.e. pppoe_session0-tx and pppoe_session0-output.

Can someone guide me to how to increase the upper limit on the number of nodes?

Currently number of nodes is limited by buffer metadata space, and the way how 
we calculate node errors (vlib_error_t).
Currently vlib_error_t is u16, and 10 bits are used for node. That gives you 1 
<< 10 of node indices, so roughly
300-400 interfaces (2 nodes per interface  + other registered nodes < 1024).

This is something we can improve, but the real question is, do you really want 
to go that way.
Have you considered using some more lighter way to deal with large number of 
sessions...

--
Damjan


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#12734): https://lists.fd.io/g/vpp-dev/message/12734
Mute This Topic: https://lists.fd.io/mt/29649711/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to