Problem IPoE (nl_modify: File exists)

IPoE related questions
Post Reply
daniloacr
Posts: 6
Joined: 29 May 2017, 20:22

Problem IPoE (nl_modify: File exists)

Post by daniloacr »

Hello everyone!

I have a problem with IPoE and I can't solve it.
Whenever there is a mass disconnection (Power outage for example)

customers are unable to authenticate again
in the log it shows

Code: Select all

error: ipoe1771: ipoe: nl_modify: File exists
and to work again I have to restart linux

I did a simulation using VMWARE + DHCDROP and managed to reproduce the problem.

Linux: Debian 9
Kernel: 4.9.0-11-amd64
Accel-PPP: accel-cmd 1.12.0-103-g45896ff
Video: https://www.youtube.com/watch?v=fnMBFLqLm4M
My Config: https://pastebin.com/raw/YQvwPVqx

already tested

Code: Select all

[ipoe]
unit-cache=0
unit-cache=1000
unit-cache=5000

Code: Select all

[common]
check-ip=0
check-ip=1

there's no need to stop the daemon, just let the IPoE session expire the effect is the same


Real production scenario:

Imagine part of the city without electricity for 1 hour.
However, the backbone has a power generator.
the server will NOT shut down.

Many subscribers will be left without internet (without electricity), the Lease-Time (10 minute) will expire and the server will remove these sessions.
When the electric power is restored, the same problem reported above will happen.

would anyone have an idea how to solve this problem?
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Problem IPoE (nl_modify: File exists)

Post by dimka88 »

Try to set max-lease-time to 84600, I hope electricity will restore and customers get his old params with worked sessions.
daniloacr
Posts: 6
Joined: 29 May 2017, 20:22

Re: Problem IPoE (nl_modify: File exists)

Post by daniloacr »

would not be an ideal solution, I need to work with a lower lease-time
daniloacr
Posts: 6
Joined: 29 May 2017, 20:22

Re: Problem IPoE (nl_modify: File exists)

Post by daniloacr »

I believe that accel-ppp should delete / skip these interfaces in error.
That way the other subscribers would be able to authenticate.

I'm not a C programmer.
but looking at the source the problem seems to happen in this piece of code.
I apologize if I'm talking nonsense

drivers/ipoe/ipoe.c

Code: Select all

static int ipoe_nl_cmd_modify(struct sk_buff *skb, struct genl_info *info)
{
        ...
        ...
        ...
        if (info->attrs[IPOE_ATTR_PEER_ADDR]) {
                peer_addr = nla_get_be32(info->attrs[IPOE_ATTR_PEER_ADDR]);
                //if (peer_addr) {
                //      ses1 = ipoe_lookup(peer_addr);
                //      if (ses1) {
                //              atomic_dec(&ses1->refs);
                //              if (ses1 != ses) {
                //                      ret = -EEXIST;
                //                      goto out_unlock;
                //              }
                //      }
                //}
        ...
        ...
        ...
}
eklmno
Posts: 10
Joined: 05 Dec 2020, 16:56

Re: Problem IPoE (nl_modify: File exists)

Post by eklmno »

Hi ,
it looks like we've got similar behaviour.

debug: ipoe164: ipoe: activate session
debug: mlibnetlink: RTNETLINK answers: File exists
error: ipoe164: ipoe: nl_modify: File exists
debug: ipoe164: terminate
info: ipoe164: ipoe: session finished

Are there any chance to force Accel to delete/skip those fake interfaces without rebooting the server ?
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Problem IPoE (nl_modify: File exists)

Post by dimka88 »

Hello @ekimno, need to understand the nature of this issue. Could you grab logs when ipoe164 is earlier finished?
eklmno
Posts: 10
Joined: 05 Dec 2020, 16:56

Re: Problem IPoE (nl_modify: File exists)

Post by eklmno »

Hello,
My colleague has started a new thread at
viewtopic.php?f=13&t=5519
I left some odds and ends there.
Post Reply