hfsc_opts
bzero(&$$.data.hfsc_opts,
| HFSC '(' hfsc_opts ')' {
$$.data.hfsc_opts = $3;
hfsc_opts : {
bzero(&hfsc_opts,
$$ = hfsc_opts;
if (hfsc_opts.linkshare.used) {
hfsc_opts.linkshare.m2 = $2;
hfsc_opts.linkshare.used = 1;
if (hfsc_opts.linkshare.used) {
hfsc_opts.linkshare.m1 = $3;
hfsc_opts.linkshare.d = $5;
hfsc_opts.linkshare.m2 = $7;
hfsc_opts.linkshare.used = 1;
if (hfsc_opts.realtime.used) {
hfsc_opts.realtime.m2 = $2;
hfsc_opts.realtime.used = 1;
if (hfsc_opts.realtime.used) {
hfsc_opts.realtime.m1 = $3;
hfsc_opts.realtime.d = $5;
hfsc_opts.realtime.m2 = $7;
hfsc_opts.realtime.used = 1;
if (hfsc_opts.upperlimit.used) {
hfsc_opts.upperlimit.m2 = $2;
hfsc_opts.upperlimit.used = 1;
if (hfsc_opts.upperlimit.used) {
hfsc_opts.upperlimit.m1 = $3;
hfsc_opts.upperlimit.d = $5;
hfsc_opts.upperlimit.m2 = $7;
hfsc_opts.upperlimit.used = 1;
hfsc_opts.flags |= HFCF_DEFAULTCLASS;
hfsc_opts.flags |= HFCF_RED;
hfsc_opts.flags |= HFCF_RED|HFCF_ECN;
hfsc_opts.flags |= HFCF_RIO;
struct node_hfsc_opts hfsc_opts;
struct node_hfsc_opts hfsc_opts;
%type <v.hfsc_opts> hfscopts_list hfscopts_item hfsc_opts
pa->pq_u.hfsc_opts.flags = opts->data.hfsc_opts.flags;
if (opts->data.hfsc_opts.linkshare.used) {
pa->pq_u.hfsc_opts.lssc_m1 =
eval_bwspec(&opts->data.hfsc_opts.linkshare.m1,
pa->pq_u.hfsc_opts.lssc_m2 =
eval_bwspec(&opts->data.hfsc_opts.linkshare.m2,
pa->pq_u.hfsc_opts.lssc_d =
opts->data.hfsc_opts.linkshare.d;
if (opts->data.hfsc_opts.realtime.used) {
pa->pq_u.hfsc_opts.rtsc_m1 =
eval_bwspec(&opts->data.hfsc_opts.realtime.m1,
pa->pq_u.hfsc_opts.rtsc_m2 =
eval_bwspec(&opts->data.hfsc_opts.realtime.m2,
pa->pq_u.hfsc_opts.rtsc_d =
opts->data.hfsc_opts.realtime.d;
if (opts->data.hfsc_opts.upperlimit.used) {
pa->pq_u.hfsc_opts.ulsc_m1 =
eval_bwspec(&opts->data.hfsc_opts.upperlimit.m1,
pa->pq_u.hfsc_opts.ulsc_m2 =
eval_bwspec(&opts->data.hfsc_opts.upperlimit.m2,
pa->pq_u.hfsc_opts.ulsc_d =
opts->data.hfsc_opts.upperlimit.d;
struct hfsc_opts *opts;
opts = &pa->pq_u.hfsc_opts;
if (opts->rtsc_m2 != 0 && altq->pq_u.hfsc_opts.rtsc_m2 != 0) {
sc.m1 = altq->pq_u.hfsc_opts.rtsc_m1;
sc.d = altq->pq_u.hfsc_opts.rtsc_d;
sc.m2 = altq->pq_u.hfsc_opts.rtsc_m2;
if (opts->lssc_m2 != 0 && altq->pq_u.hfsc_opts.lssc_m2 != 0) {
sc.m1 = altq->pq_u.hfsc_opts.lssc_m1;
sc.d = altq->pq_u.hfsc_opts.lssc_d;
sc.m2 = altq->pq_u.hfsc_opts.lssc_m2;
sc.m1 = parent->pq_u.hfsc_opts.lssc_m1;
sc.d = parent->pq_u.hfsc_opts.lssc_d;
sc.m2 = parent->pq_u.hfsc_opts.lssc_m2;
if (altq->pq_u.hfsc_opts.flags & HFCF_DEFAULTCLASS) {
const struct hfsc_opts *opts;
opts = &a->pq_u.hfsc_opts;
rtsc = &qopts->data.hfsc_opts.realtime;
lssc = &qopts->data.hfsc_opts.linkshare;
ulsc = &qopts->data.hfsc_opts.upperlimit;
struct node_hfsc_opts hfsc_opts;
struct hfsc_opts *opts;
opts = &a->pq_u.hfsc_opts;
struct hfsc_opts hfsc_opts;