Используем схему user per vlan (q-in-q на абонента) и стараемся перейти от статики (start=up) на динамику (start=dhcpv4). Предыдущие коммиты действительно позволили успешно авторизовать клиента как по dhcp, так и по не классифицированному пакету, а так же позволяют мониторить сколько пользователей перенастроили оборудование в dhcp. Но! Если перезагрузить accel, то все подключения поднятые по dhcp, переподнимутся как up, доступ в интернет пропадёт по истечению аренды, а интерфейс продолжит вечно висеть как up.
Предлагаю варианты (при настройке интерфейса shared=0, start=up, start=dhcpv4):
1. При поднятии интерфейса по не классифицированному пакету, продолжать слушать DHCP и в случае получения dhcp запроса пересоздавать интерфейс в интерфейс по dhcp и отвечать на запрос.
2. В ipoe драйвере в счетчике пакетов используемом idle-таймером перестать учитывать DHCP пакеты и пакеты с link-local адресов (169.254.0.0/16). Тогда интерфейс должен по таймауту упасть и пересоздатся как dhcp.
Предпочтительнее, конечно, первый вариант. Понимаю, что такая недокументированная схема работы сегодня мало кем используется, но мне кажется для shared=0 интерфейсов у неё есть большой потенциал.
Кстати, в обратную сторону (dhcp->up) интерфейс корректно пересоздаётся после истечения аренды.