From: Aws Ismail <aws.ismail@gmail.com>
To: dev@dpdk.org
Subject: [dpdk-dev] Explanation of the QoS offset values used in the QoS scheduler example app.
Date: Sat, 14 Feb 2015 14:34:35 -0500 [thread overview]
Message-ID: <CAMHMu0OVM9eWima6__dJ1ETrd1S4Y67p-1sn21C2oxQvwdVySA@mail.gmail.com> (raw)
In-Reply-To: <CAMHMu0MwKozt2A2Gp_s2yHT=dt2cZBE6Np_2guAWGjKfaMLD_Q@mail.gmail.com>
Hi everyone,
I am looking at this portion of the code in the app_thread.c file of the
QoS scheduler example application:
/*
* QoS parameters are encoded as follows:
* Outer VLAN ID defines subport
* Inner VLAN ID defines pipe
* Destination IP 0.0.XXX.0 defines traffic class
* Destination IP host (0.0.0.XXX) defines queue
* Values below define offset to each field from start of frame
*/
#define SUBPORT_OFFSET 7
#define PIPE_OFFSET 9
#define TC_OFFSET 20
#define QUEUE_OFFSET 20
#define COLOR_OFFSET 19
static inline int get_pkt_sched(struct rte_mbuf *m, uint32_t *subport,
uint32_t *pipe, uint32_t *traffic_class, uint32_t *queue, uint32_t *color)
{
uint16_t *pdata = rte_pktmbuf_mtod(m, uint16_t *);
*subport = (rte_be_to_cpu_16(pdata[SUBPORT_OFFSET]) & 0x0FFF) &
(port_params.n_subports_per_port - 1); /* Outer VLAN ID*/
*pipe = (rte_be_to_cpu_16(pdata[PIPE_OFFSET]) & 0x0FFF) &
(port_params.n_pipes_per_subport - 1); /* Inner VLAN ID */
*traffic_class = (pdata[QUEUE_OFFSET] & 0x0F) &
(RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE - 1); /* Destination IP */
*queue = ((pdata[QUEUE_OFFSET] >> 8) & 0x0F) &
(RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS - 1) ; /* Destination IP */
*color = pdata[COLOR_OFFSET] & 0x03; /* Destination IP */
return 0;
}
The offset values do not make sense to me. According to the programmer
guide, the queue selection is SVID/CVID/TC/QID based. And those offset seem
off in this case. Is this because it is assuming that the packet is being
altered before it gets to this stage ?
Can anyone provide a better explanation or at least the reason behind
choosing those offset values shown above.
Thanks.
next parent reply other threads:[~2015-02-14 19:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAMHMu0MwKozt2A2Gp_s2yHT=dt2cZBE6Np_2guAWGjKfaMLD_Q@mail.gmail.com>
2015-02-14 19:34 ` Aws Ismail [this message]
2015-02-16 11:34 ` Dumitrescu, Cristian
2015-02-16 13:05 ` Aws Ismail
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAMHMu0OVM9eWima6__dJ1ETrd1S4Y67p-1sn21C2oxQvwdVySA@mail.gmail.com \
--to=aws.ismail@gmail.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).