tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: RFC: new ifnet MP-scalable sending interface
Hi,
On 2016/04/27 0:27, Taylor R Campbell wrote:
> Date: Tue, 26 Apr 2016 13:22:40 +0900
> From: Kengo NAKAHARA <k-nakahara%iij.ad.jp@localhost>
>
> Does anyone have any comments or objections? If there is no objection,
> I will commit this patch after a few days or a few weeks.
> http://www.netbsd.org/~knakahara/if-transmit/if-transmit.patch
> # rebased, no functional changes
>
> Two little suggestions:
>
> - Why not call the struct ifnet member `if_enqueue'?
>
> It may be confusing to add a new verb `transmit' to a lexicon that
> already has a lot of local jargon.
Fair enough. However "if_enqueue" would not be appropriate as joerg@n.o
point out in the other mail.
Hmm..., I think of the following candidates, but I cannot determine.
# As you know, I am not good at English...
- if_express
- if_post
- if_pass
- if_downward
- if_direct
- if_transmit (again)
- if_enqueue (again)
Which one is better? Anything else better?
> - Have you considered making all callers use the ifq_enqueue function,
> instead of calling the if_transmit member directly?
>
> Generally, I would like to see a clearer separation between
> (a) the responsibilities of a driver (`fill in ifp with functions
> that implement your functionality'), and
> (b) the responsibilities of a caller in the network stack (`call
> ifq_enqueue to send a packet off to the driver').
> But maybe in this case it doesn't matter so much, if there's no
> additional logic in ifq_enqueue.
I have considered it a little, so that I use if_transmit member directly
because of the clean of caller and ifq_enqueue() implementation. I feel
like avoiding extra if-else statement in fast path every time. However,
as you point out, it would not be a clear responsibility separation...
Hmm, I will implement if_transmit to virtual interfaces such as gif(4).
Do you think virtual interfaces should also use ifq_enqueue? If so,
I will modify to use ifq_enqueue.
Thanks,
--
//////////////////////////////////////////////////////////////////////
Internet Initiative Japan Inc.
Device Engineering Section,
IoT Platform Development Department,
Network Division,
Technology Unit
Kengo NAKAHARA <k-nakahara%iij.ad.jp@localhost>
Home |
Main Index |
Thread Index |
Old Index