PPPoE Host-Uniq limited to 32 chars

lluke

Occasional Visitor
Hi All,
while investigating some issues with my PPPoE connection it seems that I've to configure the Host-Uniq tag to a specific value.

The value I should provide is
Code:
1ced6f301223aaaaaaaa04000000aaaaaaaa4621426f78202020aaaaaaaa
which seems to be incompatible with Asus WRT Merlin (tested on 386.5_2) since it is 61 chars length and the system has an hard limit to 32 characters.

As per the RFC 2516 the Host-Uniq can be of any value and length

Code:
   0x0103 Host-Uniq

      This TAG is used by a Host to uniquely associate an Access
      Concentrator response (PADO or PADS) to a particular Host request
      (PADI or PADR).  The TAG_VALUE is binary data of any value and
      length that the Host chooses.  It is not interpreted by the Access
      Concentrator.  The Host MAY include a Host-Uniq TAG in a PADI or
      PADR.  If the Access Concentrator receives this TAG, it MUST
      include the TAG unmodified in the associated PADO or PADS
      response.

Trying to force a longer value through APIs I'm getting the following error from the logs

Code:
httpd: nvram_check fail: nvram wan_pppoe_hostuniq over length (60 > 32)


Is there any reason for this limitation? Is there any possibility to get rid of it or is it possible to fix this behavior in a future release of the firmware?
 
Last edited:

RMerlin

Asuswrt-Merlin dev
Variables cannot be set to allow "any length" due to internal buffer limitations within the firmware, so Asus decided on a specific max length probably based on the specific case that brought them to implement this feature.

I could try increasing the max size to 256, but I would first need to ensure that any section of code that manipulates this variable is able to deal with a longer length, which is not guaranteed. I.e., it's not as trivial as just changing the value in two locations (webui and libshared).
 

lluke

Occasional Visitor
Variables cannot be set to allow "any length" due to internal buffer limitations within the firmware, so Asus decided on a specific max length probably based on the specific case that brought them to implement this feature.

I could try increasing the max size to 256, but I would first need to ensure that any section of code that manipulates this variable is able to deal with a longer length, which is not guaranteed. I.e., it's not as trivial as just changing the value in two locations (webui and libshared).
Got it, thanks a lot for the response @RMerlin.
256 will definitely be great, but also only 64 would cover my scenario that I hope is not so common among users.

I'll stay tuned to see if you would manage to work on this.

Thanks again for the support
 

RMerlin

Asuswrt-Merlin dev
It should be safe to increase the max length. I will also forward the request upstream.
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top