act_ife.c (b409074e6693bcdaa7abbee2a035f22a9eabda53) act_ife.c (4e8ddd7f1758ca4ddd0c1f7cf3e66fce736241d2)
1/*
2 * net/sched/ife.c Inter-FE action based on ForCES WG InterFE LFB
3 *
4 * Refer to:
5 * draft-ietf-forces-interfelfb-03
6 * and
7 * netdev01 paper:
8 * "Distributing Linux Traffic Control Classifier-Action

--- 484 unchanged lines hidden (view full) ---

493 if (!exists) {
494 ret = tcf_idr_create(tn, parm->index, est, a, &act_ife_ops,
495 bind, true);
496 if (ret) {
497 kfree(p);
498 return ret;
499 }
500 ret = ACT_P_CREATED;
1/*
2 * net/sched/ife.c Inter-FE action based on ForCES WG InterFE LFB
3 *
4 * Refer to:
5 * draft-ietf-forces-interfelfb-03
6 * and
7 * netdev01 paper:
8 * "Distributing Linux Traffic Control Classifier-Action

--- 484 unchanged lines hidden (view full) ---

493 if (!exists) {
494 ret = tcf_idr_create(tn, parm->index, est, a, &act_ife_ops,
495 bind, true);
496 if (ret) {
497 kfree(p);
498 return ret;
499 }
500 ret = ACT_P_CREATED;
501 } else {
501 } else if (!ovr) {
502 tcf_idr_release(*a, bind);
502 tcf_idr_release(*a, bind);
503 if (!ovr) {
504 kfree(p);
505 return -EEXIST;
506 }
503 kfree(p);
504 return -EEXIST;
507 }
508
509 ife = to_ife(*a);
510 p->flags = parm->flags;
511
512 if (parm->flags & IFE_ENCODE) {
513 if (tb[TCA_IFE_TYPE])
514 ife_type = nla_get_u16(tb[TCA_IFE_TYPE]);

--- 28 unchanged lines hidden (view full) ---

543 NULL, NULL);
544 if (err) {
545metadata_parse_err:
546 if (ret == ACT_P_CREATED)
547 tcf_idr_release(*a, bind);
548
549 if (exists)
550 spin_unlock_bh(&ife->tcf_lock);
505 }
506
507 ife = to_ife(*a);
508 p->flags = parm->flags;
509
510 if (parm->flags & IFE_ENCODE) {
511 if (tb[TCA_IFE_TYPE])
512 ife_type = nla_get_u16(tb[TCA_IFE_TYPE]);

--- 28 unchanged lines hidden (view full) ---

541 NULL, NULL);
542 if (err) {
543metadata_parse_err:
544 if (ret == ACT_P_CREATED)
545 tcf_idr_release(*a, bind);
546
547 if (exists)
548 spin_unlock_bh(&ife->tcf_lock);
549 tcf_idr_release(*a, bind);
550
551 kfree(p);
552 return err;
553 }
554
555 err = populate_metalist(ife, tb2, exists);
556 if (err)
557 goto metadata_parse_err;
558

--- 344 unchanged lines hidden ---
551 kfree(p);
552 return err;
553 }
554
555 err = populate_metalist(ife, tb2, exists);
556 if (err)
557 goto metadata_parse_err;
558

--- 344 unchanged lines hidden ---