Currently lltable sources are split among different files: in[6].c along with generic addr/domain handling code has most of lltable callbacks, if_ether.c / nd6.c shares protocol parsing/message generation with other lltable code.
The problem here is that sharing single file w/ different subsystems intended to communicate with each other provokes violations like direct structure accesses, calling internal methods and so on.
Another thing is that lltable code is large enought to deserve dedicated storage.
So, the goal of the proposed change is to hide lltable internals and isolate the code maintaining lltable from any other code by putting it in[6]_lle.c files dedicated for the lltable subsystem.
To be more specific:
- All lltable callbacks are moved from in[6].c
- All resolve routines are moved from if_ether.c/nd6.c
- All arp/nd event handlers are also moved.
- lle timer routines are also moved.
- All except llentry flags/struct llentry itself are moved to if_lltable_var.h.