summaryrefslogtreecommitdiffstats
path: root/extras/rpm/vpp.spec
AgeCommit message (Expand)AuthorFilesLines
2020-05-07misc: deprecate elftoolDamjan Marion1-1/+0
2020-04-30build: rework x86 CPU variantsDamjan Marion1-2/+2
2020-03-06misc: Fix vpp-selinux-policy dependency on CentOS 8Renato Botelho do Couto1-1/+6
2019-12-17misc: Add CentOS 8 package supportRenato Botelho do Couto1-4/+10
2019-12-17build: export vapi generation in vpp-devOliver Giles1-0/+3
2019-08-12papi: Revert vpp-api-python to py2, add py3 pkgIan Wells1-2/+29
2019-05-23rpm: VPP-1674: exclude external headers from rpmBenoît Ganne1-1/+1
2019-05-01Freshen RPM dependencies in vpp specfile.Thomas F Herbert1-19/+16
2019-03-06rpm: set exec bits on pluginsMatthew Smith1-3/+3
2019-02-19VPP-1504: Remove JVPPMichal Cmarada1-28/+1
2018-12-18Build changes required for Fedora and CentOSThomas F Herbert1-7/+8
2018-11-23Fix permission for vpp_papiOnong Tayeng1-1/+1
2018-09-26rpm: Fix the spec file to look into right directoriesMohsin Kazmi1-1/+1
2018-09-13Fix: vppapigen make build fails on fresh installPaul Vinciguerra1-2/+2
2018-09-12Always use 'lib' instead of 'lib64'Damjan Marion1-5/+5
2018-09-07update regex used by rpm build to find lib filesMatthew Smith1-1/+1
2018-09-02Switch to cmakeDamjan Marion1-4/+0
2018-08-07PAPI: Move unit tests to fix packaging issues.Ole Troan1-1/+0
2018-08-03PAPI: Union pad at the end of short fields instead of at head.Ole Troan1-0/+1
2018-08-01Move java api to extras/Damjan Marion1-3/+3
2018-06-22Python API: Add enum and union support.Ole Troan1-1/+1
2018-06-18Revert "Python API: Add enum and union support."Ole Trøan1-1/+1
2018-06-17Python API: Add enum and union support.Ole Troan1-1/+1
2018-05-19MLX DPDK glue: exclude dependency on OFED librariesIgor Mikhailov (imichail)1-0/+1
2018-05-04Add python lex and yacc to spec file build requirements.Thomas F Herbert1-3/+3
2018-04-08Restore building of debuginfo RPMsThomas F Herbert1-10/+2
2018-04-08Remove subunit from Centos requirements.Thomas F Herbert1-1/+2
2018-04-06Remove mbedtls from build requirement for CentosThomas F Herbert1-1/+2
2018-03-02Add RPM buildtime dependency on mbedtls-develMatthew Smith1-0/+1
2018-02-28Adjust vpp-selinux-policy postinstallMatthew Smith1-1/+1
2018-01-31RPMS: Also install C.py, JSON.py for vppapipgen.Jon Loeliger1-0/+3
2018-01-30VPP-899: Run VPP under SELinuxBilly McFall1-1/+76
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-0/+1
2018-01-18dpdk plugin depends on numactl-libsGabriel Ganne1-1/+1
2017-12-04Optimize RPM build processRenato Botelho do Couto1-1/+1
2017-11-17subunit is required on centos as well as fedoraGabriel Ganne1-2/+0
2017-11-08VOM rpm build fixesNeale Ranns1-0/+1
2017-11-05dpdk: build nasm from sourceSergio Gonzalez Monroy1-3/+0
2017-10-14Fix bug with temporary directory when building rpms.Thomas F Herbert1-1/+1
2017-10-14Deps added to Makefile must also be in spec file.Thomas F Herbert1-0/+4
2017-09-21Unpack into temporary directory with longer name.Thomas F Herbert1-2/+10
2017-09-20Use openssl 1.0 compat RPM for Fedora 26 and newer.Thomas F Herbert1-1/+4
2017-09-15VPP-958: RPM Update wipes out local changes to 80-vpp.confBilly McFall1-2/+2
2017-09-12Add option to build without multi-buffer crypto.Thomas F Herbert1-2/+10
2017-08-26Add Build Requirements from Makefile to spec file.Thomas F Herbert1-6/+23
2017-08-08Create source rpm.Thomas F Herbert1-2/+2
2017-07-27Use relative path to vpp.service.Thomas F Herbert1-1/+1
2017-07-12Decrease steps necessary to upgrading RPM packages fixedKristina Nevolnikova1-16/+22
2017-07-05VPP-900: VPP is released under the Apache 2.0 License (ASL 2.0). Update RPM s...Billy McFall1-1/+1
2017-05-20Restore possibility to build vpp in debug mode for rpmsIgor Mikhailov (imichail)1-2/+6
class="o">= 0; for (i = 0; i < internals->slave_count; i++) { int lret; if (unlikely(flow->flows[i] == NULL)) continue; lret = rte_flow_destroy(internals->slaves[i].port_id, flow->flows[i], err); if (unlikely(lret != 0)) { RTE_BOND_LOG(ERR, "Failed to destroy flow on slave %d:" " %d", i, lret); ret = lret; } } TAILQ_REMOVE(&internals->flow_list, flow, next); bond_flow_release(&flow); return ret; } static int bond_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *err) { struct bond_dev_private *internals = dev->data->dev_private; struct rte_flow *flow; void *tmp; int ret = 0; int lret; /* Destroy all bond flows from its slaves instead of flushing them to * keep the LACP flow or any other external flows. */ TAILQ_FOREACH_SAFE(flow, &internals->flow_list, next, tmp) { lret = bond_flow_destroy(dev, flow, err); if (unlikely(lret != 0)) ret = lret; } if (unlikely(ret != 0)) RTE_BOND_LOG(ERR, "Failed to flush flow in all slaves"); return ret; } static int bond_flow_query_count(struct rte_eth_dev *dev, struct rte_flow *flow, const struct rte_flow_action *action, struct rte_flow_query_count *count, struct rte_flow_error *err) { struct bond_dev_private *internals = dev->data->dev_private; struct rte_flow_query_count slave_count; int i; int ret; count->bytes = 0; count->hits = 0; rte_memcpy(&slave_count, count, sizeof(slave_count)); for (i = 0; i < internals->slave_count; i++) { ret = rte_flow_query(internals->slaves[i].port_id, flow->flows[i], action, &slave_count, err); if (unlikely(ret != 0)) { RTE_BOND_LOG(ERR, "Failed to query flow on" " slave %d: %d", i, ret); return ret; } count->bytes += slave_count.bytes; count->hits += slave_count.hits; slave_count.bytes = 0; slave_count.hits = 0; } return 0; } static int bond_flow_query(struct rte_eth_dev *dev, struct rte_flow *flow, const struct rte_flow_action *action, void *arg, struct rte_flow_error *err) { switch (action->type) { case RTE_FLOW_ACTION_TYPE_COUNT: return bond_flow_query_count(dev, flow, action, arg, err); default: return rte_flow_error_set(err, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, arg, rte_strerror(ENOTSUP)); } } static int bond_flow_isolate(struct rte_eth_dev *dev, int set, struct rte_flow_error *err) { struct bond_dev_private *internals = dev->data->dev_private; int i; int ret; for (i = 0; i < internals->slave_count; i++) { ret = rte_flow_isolate(internals->slaves[i].port_id, set, err); if (unlikely(ret != 0)) { RTE_BOND_LOG(ERR, "Operation rte_flow_isolate failed" " for slave %d with error %d", i, ret); internals->flow_isolated_valid = 0; return ret; } } internals->flow_isolated = set; internals->flow_isolated_valid = 1; return 0; } const struct rte_flow_ops bond_flow_ops = { .validate = bond_flow_validate, .create = bond_flow_create, .destroy = bond_flow_destroy, .flush = bond_flow_flush, .query = bond_flow_query, .isolate = bond_flow_isolate, };