On Mon, Oct 22, 2018 at 05:30:54PM +1000, David Gwynne wrote:
> As discoverd by Adrian Close on tech@ (in "VLAN priority field and
> PF queues"), setting up traffic shaping in pf on vlan interfaces has a
> side effect where all the packets are sent with the vlan priority field
> set to the highest value. This is because hfsc forces the mbuf priority
> to the highest value, and that ends up on the wire.
> 
> I'd argue this is not what you want. HFSC queuing and packet priority
> on the wire are orthoganal, and should be configurable independently.
> 
> The diff below allows a packet through HFSC to maintain it's priority,
> despite how fast the queueing policy sends it.
> 
> This has two consequences. Firstly, it allows mbuf priorities to be
> maintained through the system or set in pf, independently of traffic
> shaping policy implemented with hfsc.
> 
> Secondly, it will allow priority queueing on a vlan interfaces
> parent to kick in. With HFSC setting the priority to 7, it made
> packets on the physical interface get queued at the highest priority,
> but now they get queued at their natural(?) prio.
> 
> It could be argued that allowing priq on the parent for HFSC controlled
> traffic is good and bad. I think it is more good, as it let's the parent
> interface act like the rest of the network that should respect the
> vlan prio value.
> 
> Adrian has tested this himself and gets the result he expects now.
> 
> OK?

I agree that changing the prio in hfsc enqueue is not right and not
needed. OK claudio@
 
> Index: hfsc.c
> ===================================================================
> RCS file: /cvs/src/sys/net/hfsc.c,v
> retrieving revision 1.47
> diff -u -p -r1.47 hfsc.c
> --- hfsc.c    13 Apr 2018 14:09:42 -0000      1.47
> +++ hfsc.c    22 Oct 2018 07:20:39 -0000
> @@ -540,7 +540,6 @@ hfsc_pf_enqueue(void *arg, struct mbuf *
>               return (m);
>  
>       ml_enqueue(&cq->q, m);
> -     m->m_pkthdr.pf.prio = IFQ_MAXPRIO;
>       return (NULL);
>  }
>  
> 

-- 
:wq Claudio

Reply via email to