* Announce interface address arrival/withdraw * Returns 0 on success. */
| 691 | * Returns 0 on success. |
| 692 | */ |
| 693 | int |
| 694 | rt_addrmsg(int cmd, struct ifaddr *ifa, int fibnum) |
| 695 | { |
| 696 | |
| 697 | KASSERT(cmd == RTM_ADD || cmd == RTM_DELETE, |
| 698 | ("unexpected cmd %d", cmd)); |
| 699 | KASSERT((fibnum >= 0 && fibnum < rt_numfibs), |
| 700 | ("%s: fib out of range 0 <=%d<%d", __func__, fibnum, rt_numfibs)); |
| 701 | |
| 702 | EVENTHANDLER_DIRECT_INVOKE(rt_addrmsg, ifa, cmd); |
| 703 | |
| 704 | if (V_rt_add_addr_allfibs) |
| 705 | fibnum = RT_ALL_FIBS; |
| 706 | return (rtsock_addrmsg(cmd, ifa, fibnum)); |
| 707 | } |
| 708 | |
| 709 | /* |
| 710 | * Announce kernel-originated route addition/removal to rtsock based on @rt data. |
no test coverage detected