Page MenuHomeFreeBSD

Move all af-dependent lltable code to separate files. Move lltable internal definitions to if_lltable_var.h.
Needs ReviewPublic

Authored by melifaro on Jan 1 2016, 1:49 PM.

Details

Reviewers
None
Group Reviewers
network
Summary

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.
Test Plan

(Nearly) no functional changes, just code reshaping.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 1908
Build 1915: arc lint + arc unit

Event Timeline

melifaro retitled this revision from to Move all af-dependent lltable code to separate files. Move lltable internal definitions to if_lltable_var.h..
melifaro updated this object.
melifaro edited the test plan for this revision. (Show Details)