Hi Cong, Thanks for your questions.
> On 22 Mar 2019, at 17:39, Cong Wang <xiyou.wangc...@gmail.com> wrote: > > Hello, > > On Fri, Mar 22, 2019 at 7:09 AM Kevin 'ldir' Darbyshire-Bryant > <l...@darbyshire-bryant.me.uk> wrote: >> >> Conndscp is a new tc filter action module. It is designed to copy DSCPs >> to conntrack marks and the reverse operation of conntrack mark contained >> DSCPs to the diffserv field of suitable skbs. >> > > Is it possible and feasible to integrate this into connmark? I started off coding it that way but quickly ran into my limitations with netlink messaging and became frustrated. Aside from my own limitations, conndscp ab/uses tcf_qstats requeues & overlimits to indicate DSCP->MARK->DSCP operations and has been useful in proving DSCP/marking operations are occurring in the right times/places. Integrating with connmark which itself uses overlimits to indicate conntrack mark to skb->mark restoration would lose that differentiation/confirmation/debug ability. A possibility is to ab/use the drop count instead but I fear that would cause confusion. > Both are intended to retrieve information from conntrack and store > it into skb. I know the name "connmark" already says it is a mark, > while yours isn't, I still want to see if we can avoid code duplications. I understand your quest :-) I think conndscp does a bit more than connmark. Conndscp is two way diffserv<-->conntrack mark operation. connmark is a single way conntrack mark->skb.mark operation. Please let me know your thoughts and whether I’m talking out of my inexperienced backside, which direction I should go and I shall gladly take your advice…and improve my C some more :-) Many thanks, Kevin D-B gpg: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A