return 0;
}
-int dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
- int eth_rx_queue_id,
+int __rte_experimental
+dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
+ int eth_rx_queue_id,
u16 ch_id,
const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
{
return ret;
}
-int dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
- int eth_rx_queue_id)
+int __rte_experimental
+dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
+ int eth_rx_queue_id)
{
struct qm_mcc_initfq opts;
int ret;
return is_device_supported(dev, &rte_dpaa_pmd);
}
-int
+int __rte_experimental
rte_pmd_dpaa_set_tx_loopback(uint8_t port, uint8_t on)
{
struct rte_eth_dev *dev;
uint64_t tund; /**<Tx Undersized */
};
-int dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
+int __rte_experimental dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
int eth_rx_queue_id,
u16 ch_id,
const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
-int dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
+int __rte_experimental dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
int eth_rx_queue_id);
enum qman_cb_dqrr_result
* - (-ENODEV) if *port* invalid.
* - (-EINVAL) if bad parameter.
*/
-int
+int __rte_experimental
rte_pmd_dpaa_set_tx_loopback(uint8_t port, uint8_t on);
#endif /* _PMD_DPAA_H_ */
#include <string.h>
#include <stdbool.h>
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_errno.h>
#include <rte_log.h>
return RTE_BBDEV_MAX_DEVS;
}
-struct rte_bbdev *
+struct rte_bbdev * __rte_experimental
rte_bbdev_allocate(const char *name)
{
int ret;
return bbdev;
}
-int
+int __rte_experimental
rte_bbdev_release(struct rte_bbdev *bbdev)
{
uint16_t dev_id;
return 0;
}
-struct rte_bbdev *
+struct rte_bbdev * __rte_experimental
rte_bbdev_get_named_dev(const char *name)
{
unsigned int i;
return NULL;
}
-uint16_t
+uint16_t __rte_experimental
rte_bbdev_count(void)
{
return num_devs;
}
-bool
+bool __rte_experimental
rte_bbdev_is_valid(uint16_t dev_id)
{
if ((dev_id < RTE_BBDEV_MAX_DEVS) &&
return false;
}
-uint16_t
+uint16_t __rte_experimental
rte_bbdev_find_next(uint16_t dev_id)
{
dev_id++;
return dev_id;
}
-int
+int __rte_experimental
rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id)
{
unsigned int i;
return ret;
}
-int
+int __rte_experimental
rte_bbdev_intr_enable(uint16_t dev_id)
{
int ret;
return -ENOTSUP;
}
-int
+int __rte_experimental
rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
const struct rte_bbdev_queue_conf *conf)
{
return 0;
}
-int
+int __rte_experimental
rte_bbdev_start(uint16_t dev_id)
{
int i;
return 0;
}
-int
+int __rte_experimental
rte_bbdev_stop(uint16_t dev_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
return 0;
}
-int
+int __rte_experimental
rte_bbdev_close(uint16_t dev_id)
{
int ret;
return 0;
}
-int
+int __rte_experimental
rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
return 0;
}
-int
+int __rte_experimental
rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
rte_bbdev_log_debug("Reset stats on %u", dev->data->dev_id);
}
-int
+int __rte_experimental
rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats)
{
struct rte_bbdev *dev = get_dev(dev_id);
return 0;
}
-int
+int __rte_experimental
rte_bbdev_stats_reset(uint16_t dev_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
return 0;
}
-int
+int __rte_experimental
rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info)
{
struct rte_bbdev *dev = get_dev(dev_id);
return 0;
}
-int
+int __rte_experimental
rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_queue_info *queue_info)
{
}
}
-struct rte_mempool *
+struct rte_mempool * __rte_experimental
rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type,
unsigned int num_elements, unsigned int cache_size,
int socket_id)
return mp;
}
-int
+int __rte_experimental
rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg)
{
return (user_cb == NULL) ? -ENOMEM : 0;
}
-int
+int __rte_experimental
rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg)
{
return ret;
}
-void
+void __rte_experimental
rte_bbdev_pmd_callback_process(struct rte_bbdev *dev,
enum rte_bbdev_event_type event, void *ret_param)
{
rte_spinlock_unlock(&rte_bbdev_cb_lock);
}
-int
+int __rte_experimental
rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
return dev->dev_ops->queue_intr_enable(dev, queue_id);
}
-int
+int __rte_experimental
rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id)
{
struct rte_bbdev *dev = get_dev(dev_id);
return dev->dev_ops->queue_intr_disable(dev, queue_id);
}
-int
+int __rte_experimental
rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
void *data)
{
}
-const char *
+const char * __rte_experimental
rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
{
static const char * const op_types[] = {
#include <stdbool.h>
#include <string.h>
+#include <rte_compat.h>
#include <rte_atomic.h>
#include <rte_bus.h>
#include <rte_cpuflags.h>
* @return
* The total number of usable devices.
*/
-uint16_t
+uint16_t __rte_experimental
rte_bbdev_count(void);
/**
* @return
* true if device ID is valid and device is attached, false otherwise.
*/
-bool
+bool __rte_experimental
rte_bbdev_is_valid(uint16_t dev_id);
/**
* - The next device, or
* - RTE_BBDEV_MAX_DEVS if none found
*/
-uint16_t
+uint16_t __rte_experimental
rte_bbdev_find_next(uint16_t dev_id);
/** Iterate through all enabled devices */
* - -EBUSY if the identified device has already started
* - -ENOMEM if unable to allocate memory
*/
-int
+int __rte_experimental
rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
/**
* - -EBUSY if the identified device has already started
* - -ENOTSUP if the interrupts are not supported by the device
*/
-int
+int __rte_experimental
rte_bbdev_intr_enable(uint16_t dev_id);
/** Device queue configuration structure */
* - EINVAL if the identified queue size or priority are invalid
* - EBUSY if the identified queue or its device have already started
*/
-int
+int __rte_experimental
rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
const struct rte_bbdev_queue_conf *conf);
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_start(uint16_t dev_id);
/**
* @return
* - 0 on success
*/
-int
+int __rte_experimental
rte_bbdev_stop(uint16_t dev_id);
/**
* @return
* - 0 on success
*/
-int
+int __rte_experimental
rte_bbdev_close(uint16_t dev_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);
/** Device statistics. */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int
+int __rte_experimental
rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
/**
* @return
* - 0 on success
*/
-int
+int __rte_experimental
rte_bbdev_stats_reset(uint16_t dev_id);
/** Device information supplied by the device's driver */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int
+int __rte_experimental
rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);
/** Queue information */
* - 0 on success
* - EINVAL if invalid parameter pointer is provided
*/
-int
+int __rte_experimental
rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
struct rte_bbdev_queue_info *queue_info);
* @return
* Zero on success, negative value on failure.
*/
-int
+int __rte_experimental
rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg);
* - EINVAL if invalid parameter pointer is provided
* - EAGAIN if the provided callback pointer does not exist
*/
-int
+int __rte_experimental
rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
rte_bbdev_cb_fn cb_fn, void *cb_arg);
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
/**
* - 0 on success
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
/**
* - ENOTSUP if interrupts are not supported by the identified device
* - negative value on failure - as returned from PMD driver
*/
-int
+int __rte_experimental
rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
void *data);
* @return
* - Slot in the rte_bbdev array for a new device;
*/
-struct rte_bbdev *
+struct rte_bbdev * __rte_experimental
rte_bbdev_allocate(const char *name);
/**
* @return
* - 0 on success, negative on error
*/
-int
+int __rte_experimental
rte_bbdev_release(struct rte_bbdev *bbdev);
/**
* - NULL otherwise
*
*/
-struct rte_bbdev *
+struct rte_bbdev * __rte_experimental
rte_bbdev_get_named_dev(const char *name);
/**
* @param ret_param
* To pass data back to user application.
*/
-void
+void __rte_experimental
rte_bbdev_pmd_callback_process(struct rte_bbdev *dev,
enum rte_bbdev_event_type event, void *ret_param);
#include <sys/mman.h>
#include <sys/queue.h>
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_debug.h>
#include <rte_memory.h>
return fctret;
}
-int rte_eal_cleanup(void)
+int __rte_experimental
+rte_eal_cleanup(void)
{
rte_service_finalize();
return 0;
#include <inttypes.h>
#include <sys/queue.h>
+#include <rte_compat.h>
#include <rte_bus.h>
#include <rte_dev.h>
#include <rte_devargs.h>
return name;
}
-int rte_eal_hotplug_add(const char *busname, const char *devname,
+int __rte_experimental rte_eal_hotplug_add(const char *busname, const char *devname,
const char *devargs)
{
struct rte_bus *bus;
return ret;
}
-int rte_eal_hotplug_remove(const char *busname, const char *devname)
+int __rte_experimental
+rte_eal_hotplug_remove(const char *busname, const char *devname)
{
struct rte_bus *bus;
struct rte_device *dev;
#include <stdio.h>
#include <string.h>
+#include <rte_compat.h>
#include <rte_dev.h>
#include <rte_devargs.h>
#include <rte_tailq.h>
return strncmp(bus->name, name, strlen(bus->name));
}
-int
+int __rte_experimental
rte_eal_devargs_parse(const char *dev, struct rte_devargs *da)
{
struct rte_bus *bus = NULL;
return 0;
}
-int
+int __rte_experimental
rte_eal_devargs_insert(struct rte_devargs *da)
{
int ret;
return -1;
}
-int
+int __rte_experimental
rte_eal_devargs_remove(const char *busname, const char *devname)
{
struct rte_devargs *d;
#include <sys/queue.h>
#include <rte_config.h>
+#include <rte_compat.h>
#include <rte_log.h>
__attribute__((format(printf, 2, 0)))
* @return
* 0 on success, negative on error.
*/
-int rte_eal_hotplug_add(const char *busname, const char *devname,
+int __rte_experimental rte_eal_hotplug_add(const char *busname, const char *devname,
const char *devargs);
/**
* @return
* 0 on success, negative on error.
*/
-int rte_eal_hotplug_remove(const char *busname, const char *devname);
+int __rte_experimental rte_eal_hotplug_remove(const char *busname,
+ const char *devname);
/**
* Device comparison function.
#include <stdio.h>
#include <sys/queue.h>
+#include <rte_compat.h>
#include <rte_bus.h>
/**
* - 0 on success.
* - Negative errno on error.
*/
-int
+int __rte_experimental
rte_eal_devargs_parse(const char *dev,
struct rte_devargs *da);
* - 0 on success
* - Negative on error.
*/
-int
+int __rte_experimental
rte_eal_devargs_insert(struct rte_devargs *da);
/**
* <0 on error.
* >0 if the devargs was not within the user device list.
*/
-int rte_eal_devargs_remove(const char *busname, const char *devname);
+int __rte_experimental rte_eal_devargs_remove(const char *busname,
+ const char *devname);
/**
* Count the number of user devices of a specified type
#include <sched.h>
#include <rte_config.h>
+#include <rte_compat.h>
#include <rte_per_lcore.h>
#include <rte_bus.h>
* @return 0 Successfully released all internal EAL resources
* @return -EFAULT There was an error in releasing all resources.
*/
-int rte_eal_cleanup(void);
+int __rte_experimental rte_eal_cleanup(void);
/**
* Check if a primary process is currently alive
*
* @return The number of services registered.
*/
-uint32_t rte_service_get_count(void);
+uint32_t __rte_experimental rte_service_get_count(void);
/**
* @warning
* @retval -EINVAL Null *service_id* pointer provided
* @retval -ENODEV No such service registered
*/
-int32_t rte_service_get_by_name(const char *name, uint32_t *service_id);
+int32_t __rte_experimental rte_service_get_by_name(const char *name,
+ uint32_t *service_id);
/**
* @warning
* @return A pointer to the name of the service. The returned pointer remains
* in ownership of the service, and the application must not free it.
*/
-const char *rte_service_get_name(uint32_t id);
+const char __rte_experimental *rte_service_get_name(uint32_t id);
/**
* @warning
* @retval 1 Capability supported by this service instance
* @retval 0 Capability not supported by this service instance
*/
-int32_t rte_service_probe_capability(uint32_t id, uint32_t capability);
+int32_t __rte_experimental rte_service_probe_capability(uint32_t id,
+ uint32_t capability);
/**
* @warning
* @retval 0 lcore map updated successfully
* @retval -EINVAL An invalid service or lcore was provided.
*/
-int32_t rte_service_map_lcore_set(uint32_t service_id, uint32_t lcore,
- uint32_t enable);
+int32_t __rte_experimental rte_service_map_lcore_set(uint32_t service_id,
+ uint32_t lcore, uint32_t enable);
/**
* @warning
* @retval 0 lcore is not mapped to service
* @retval -EINVAL An invalid service or lcore was provided.
*/
-int32_t rte_service_map_lcore_get(uint32_t service_id, uint32_t lcore);
+int32_t __rte_experimental rte_service_map_lcore_get(uint32_t service_id,
+ uint32_t lcore);
/**
* @warning
* @retval 0 The service was successfully started
* @retval -EINVAL Invalid service id
*/
-int32_t rte_service_runstate_set(uint32_t id, uint32_t runstate);
+int32_t __rte_experimental rte_service_runstate_set(uint32_t id, uint32_t runstate);
/**
* @warning
* @retval 0 Service is stopped
* @retval -EINVAL Invalid service id
*/
-int32_t rte_service_runstate_get(uint32_t id);
+int32_t __rte_experimental rte_service_runstate_get(uint32_t id);
/**
* @warning
* @retval 0 Success
* @retval -EINVAL Invalid service ID
*/
-int32_t rte_service_set_runstate_mapped_check(uint32_t id, int32_t enable);
+int32_t __rte_experimental rte_service_set_runstate_mapped_check(uint32_t id,
+ int32_t enable);
/**
* @warning
* @retval -ENOEXEC Service is not in a run-able state
* @retval -EINVAL Invalid service id
*/
-int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
+int32_t __rte_experimental rte_service_run_iter_on_app_lcore(uint32_t id,
uint32_t serialize_multithread_unsafe);
/**
* @retval -EINVAL Failed to start core. The *lcore_id* passed in is not
* currently assigned to be a service core.
*/
-int32_t rte_service_lcore_start(uint32_t lcore_id);
+int32_t __rte_experimental rte_service_lcore_start(uint32_t lcore_id);
/**
* @warning
* The application must stop the service first, and then stop the
* lcore.
*/
-int32_t rte_service_lcore_stop(uint32_t lcore_id);
+int32_t __rte_experimental rte_service_lcore_stop(uint32_t lcore_id);
/**
* @warning
* @retval -EALREADY lcore is already added to the service core list
* @retval -EINVAL Invalid lcore provided
*/
-int32_t rte_service_lcore_add(uint32_t lcore);
+int32_t __rte_experimental rte_service_lcore_add(uint32_t lcore);
/**
* @warning
* @retval -EBUSY Lcore is not stopped, stop service core before removing.
* @retval -EINVAL failed to add lcore to service core mask.
*/
-int32_t rte_service_lcore_del(uint32_t lcore);
+int32_t __rte_experimental rte_service_lcore_del(uint32_t lcore);
/**
* @warning
*
* @return The number of service cores currently configured.
*/
-int32_t rte_service_lcore_count(void);
+int32_t __rte_experimental rte_service_lcore_count(void);
/**
* @warning
*
* @retval 0 Success
*/
-int32_t rte_service_lcore_reset_all(void);
+int32_t __rte_experimental rte_service_lcore_reset_all(void);
/**
* @warning
* @retval 0 Success
* @retval -EINVAL Invalid service pointer passed
*/
-int32_t rte_service_set_stats_enable(uint32_t id, int32_t enable);
+int32_t __rte_experimental rte_service_set_stats_enable(uint32_t id,
+ int32_t enable);
/**
* @warning
* service core list. No items have been populated, call this function
* with a size of at least *rte_service_core_count* items.
*/
-int32_t rte_service_lcore_list(uint32_t array[], uint32_t n);
+int32_t __rte_experimental rte_service_lcore_list(uint32_t array[], uint32_t n);
/**
* @warning
* @retval -EINVAL Invalid lcore provided
* @retval -ENOTSUP The provided lcore is not a service core.
*/
-int32_t rte_service_lcore_count_services(uint32_t lcore);
+int32_t __rte_experimental rte_service_lcore_count_services(uint32_t lcore);
/**
* @warning
* @retval 0 Statistics have been successfully dumped
* @retval -EINVAL Invalid service id provided
*/
-int32_t rte_service_dump(FILE *f, uint32_t id);
+int32_t __rte_experimental rte_service_dump(FILE *f, uint32_t id);
/**
* Returns the number of cycles that this service has consumed
* @retval 0 Success, the attribute value has been written to *attr_value*.
* -EINVAL Invalid id, attr_id or attr_value was NULL.
*/
-int32_t rte_service_attr_get(uint32_t id, uint32_t attr_id,
- uint32_t *attr_value);
+int32_t __rte_experimental rte_service_attr_get(uint32_t id, uint32_t attr_id,
+ uint32_t *attr_value);
/**
* @warning
* @retval 0 Successfully reset attributes
* -EINVAL Invalid service id provided
*/
-int32_t rte_service_attr_reset_all(uint32_t id);
+int32_t __rte_experimental rte_service_attr_reset_all(uint32_t id);
#ifdef __cplusplus
}
* Include this file if you are writing a component that requires CPU cycles to
* operate, and you wish to run the component using service cores
*/
-
+#include <rte_compat.h>
#include <rte_service.h>
/**
* -EINVAL Attempted to register an invalid service (eg, no callback
* set)
*/
-int32_t rte_service_component_register(const struct rte_service_spec *spec,
- uint32_t *service_id);
+int32_t __rte_experimental
+rte_service_component_register(const struct rte_service_spec *spec,
+ uint32_t *service_id);
/**
* @warning
* @retval -EBUSY The service is currently running, stop the service before
* calling unregister. No action has been taken.
*/
-int32_t rte_service_component_unregister(uint32_t id);
+int32_t __rte_experimental rte_service_component_unregister(uint32_t id);
/**
* @warning
* @retval -ENODEV Error in enabling service lcore on a service
* @retval -ENOEXEC Error when starting services
*/
-int32_t rte_service_start_with_defaults(void);
+int32_t __rte_experimental rte_service_start_with_defaults(void);
/**
* @warning
*
* @retval 0 Success
*/
-int32_t rte_service_component_runstate_set(uint32_t id, uint32_t runstate);
+int32_t __rte_experimental rte_service_component_runstate_set(uint32_t id,
+ uint32_t runstate);
/**
* @warning
*
* @retval None
*/
-void rte_service_finalize(void);
+void __rte_experimental rte_service_finalize(void);
#endif /* _RTE_SERVICE_PRIVATE_H_ */
#include <string.h>
#include <dirent.h>
+#include <rte_compat.h>
#include <rte_service.h>
#include "include/rte_service_component.h"
return -ENOMEM;
}
-void rte_service_finalize(void)
+void __rte_experimental
+rte_service_finalize(void)
{
if (!rte_service_library_initialized)
return;
return !!(s->spec.capabilities & RTE_SERVICE_CAP_MT_SAFE);
}
-int32_t rte_service_set_stats_enable(uint32_t id, int32_t enabled)
+int32_t __rte_experimental
+rte_service_set_stats_enable(uint32_t id, int32_t enabled)
{
struct rte_service_spec_impl *s;
SERVICE_VALID_GET_OR_ERR_RET(id, s, 0);
return 0;
}
-int32_t rte_service_set_runstate_mapped_check(uint32_t id, int32_t enabled)
+int32_t __rte_experimental
+rte_service_set_runstate_mapped_check(uint32_t id, int32_t enabled)
{
struct rte_service_spec_impl *s;
SERVICE_VALID_GET_OR_ERR_RET(id, s, 0);
return 0;
}
-uint32_t
+uint32_t __rte_experimental
rte_service_get_count(void)
{
return rte_service_count;
}
-int32_t rte_service_get_by_name(const char *name, uint32_t *service_id)
+int32_t __rte_experimental
+rte_service_get_by_name(const char *name, uint32_t *service_id)
{
if (!service_id)
return -EINVAL;
return -ENODEV;
}
-const char *
+const char * __rte_experimental
rte_service_get_name(uint32_t id)
{
struct rte_service_spec_impl *s;
return s->spec.name;
}
-int32_t
+int32_t __rte_experimental
rte_service_probe_capability(uint32_t id, uint32_t capability)
{
struct rte_service_spec_impl *s;
return !!(s->spec.capabilities & capability);
}
-int32_t
+int32_t __rte_experimental
rte_service_component_register(const struct rte_service_spec *spec,
uint32_t *id_ptr)
{
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_component_unregister(uint32_t id)
{
uint32_t i;
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_component_runstate_set(uint32_t id, uint32_t runstate)
{
struct rte_service_spec_impl *s;
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_runstate_set(uint32_t id, uint32_t runstate)
{
struct rte_service_spec_impl *s;
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_runstate_get(uint32_t id)
{
struct rte_service_spec_impl *s;
return 0;
}
-int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
+int32_t __rte_experimental rte_service_run_iter_on_app_lcore(uint32_t id,
uint32_t serialize_mt_unsafe)
{
/* run service on calling core, using all-ones as the service mask */
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_count(void)
{
int32_t count = 0;
return count;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_list(uint32_t array[], uint32_t n)
{
uint32_t count = rte_service_lcore_count();
return count;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_count_services(uint32_t lcore)
{
if (lcore >= RTE_MAX_LCORE)
return __builtin_popcountll(cs->service_mask);
}
-int32_t
+int32_t __rte_experimental
rte_service_start_with_defaults(void)
{
/* create a default mapping from cores to services, then start the
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_map_lcore_set(uint32_t id, uint32_t lcore, uint32_t enabled)
{
struct rte_service_spec_impl *s;
return service_update(&s->spec, lcore, &on, 0);
}
-int32_t
+int32_t __rte_experimental
rte_service_map_lcore_get(uint32_t id, uint32_t lcore)
{
struct rte_service_spec_impl *s;
lcore_states[lcore].is_service_core = (state == ROLE_SERVICE);
}
-int32_t rte_service_lcore_reset_all(void)
+int32_t __rte_experimental
+rte_service_lcore_reset_all(void)
{
/* loop over cores, reset all to mask 0 */
uint32_t i;
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_add(uint32_t lcore)
{
if (lcore >= RTE_MAX_LCORE)
return rte_eal_wait_lcore(lcore);
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_del(uint32_t lcore)
{
if (lcore >= RTE_MAX_LCORE)
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_start(uint32_t lcore)
{
if (lcore >= RTE_MAX_LCORE)
return ret;
}
-int32_t
+int32_t __rte_experimental
rte_service_lcore_stop(uint32_t lcore)
{
if (lcore >= RTE_MAX_LCORE)
return 0;
}
-int32_t
+int32_t __rte_experimental
rte_service_attr_get(uint32_t id, uint32_t attr_id, uint32_t *attr_value)
{
struct rte_service_spec_impl *s;
s->cycles_spent, s->cycles_spent / calls);
}
-int32_t
+int32_t __rte_experimental
rte_service_attr_reset_all(uint32_t id)
{
struct rte_service_spec_impl *s;
fprintf(f, "\n");
}
-int32_t rte_service_dump(FILE *f, uint32_t id)
+int32_t __rte_experimental rte_service_dump(FILE *f, uint32_t id)
{
uint32_t i;
int print_one = (id != UINT32_MAX);
#include <sys/io.h>
#endif
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_debug.h>
#include <rte_memory.h>
return fctret;
}
-int rte_eal_cleanup(void)
+int __rte_experimental
+rte_eal_cleanup(void)
{
rte_service_finalize();
return 0;
rxmode->security = 0;
}
-const char *
+const char * __rte_experimental
rte_eth_dev_rx_offload_name(uint64_t offload)
{
const char *name = "UNKNOWN";
return name;
}
-const char *
+const char * __rte_experimental
rte_eth_dev_tx_offload_name(uint64_t offload)
{
const char *name = "UNKNOWN";
return eth_err(port_id, ret);
}
-int
+int __rte_experimental
rte_eth_dev_is_removed(uint16_t port_id)
{
struct rte_eth_dev *dev;
/* Use this macro to check if LRO API is supported */
#define RTE_ETHDEV_HAS_LRO_SUPPORT
+#include <rte_compat.h>
#include <rte_log.h>
#include <rte_interrupts.h>
#include <rte_dev.h>
* @return
* Offload name or 'UNKNOWN' if the flag cannot be recognised.
*/
-const char *rte_eth_dev_rx_offload_name(uint64_t offload);
+const char * __rte_experimental rte_eth_dev_rx_offload_name(uint64_t offload);
/**
* @warning
* @return
* Offload name or 'UNKNOWN' if the flag cannot be recognised.
*/
-const char *rte_eth_dev_tx_offload_name(uint64_t offload);
+const char * __rte_experimental rte_eth_dev_tx_offload_name(uint64_t offload);
/**
* Configure an Ethernet device.
* @return
* 1 when the Ethernet device is removed, otherwise 0.
*/
-int
+int __rte_experimental
rte_eth_dev_is_removed(uint16_t port_id);
/**
#include <stdint.h>
#include <rte_errno.h>
+#include "rte_compat.h"
#include "rte_ethdev.h"
#include "rte_mtr_driver.h"
#include "rte_mtr.h"
})
/* MTR capabilities get */
-int
+int __rte_experimental
rte_mtr_capabilities_get(uint16_t port_id,
struct rte_mtr_capabilities *cap,
struct rte_mtr_error *error)
}
/* MTR meter profile add */
-int
+int __rte_experimental
rte_mtr_meter_profile_add(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_meter_profile *profile,
}
/** MTR meter profile delete */
-int
+int __rte_experimental
rte_mtr_meter_profile_delete(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_error *error)
}
/** MTR object create */
-int
+int __rte_experimental
rte_mtr_create(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_params *params,
}
/** MTR object destroy */
-int
+int __rte_experimental
rte_mtr_destroy(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error)
}
/** MTR object meter enable */
-int
+int __rte_experimental
rte_mtr_meter_enable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error)
}
/** MTR object meter disable */
-int
+int __rte_experimental
rte_mtr_meter_disable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error)
}
/** MTR object meter profile update */
-int
+int __rte_experimental
rte_mtr_meter_profile_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t meter_profile_id,
}
/** MTR object meter DSCP table update */
-int
+int __rte_experimental
rte_mtr_meter_dscp_table_update(uint16_t port_id,
uint32_t mtr_id,
enum rte_mtr_color *dscp_table,
}
/** MTR object policer action update */
-int
+int __rte_experimental
rte_mtr_policer_actions_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t action_mask,
}
/** MTR object enabled stats update */
-int
+int __rte_experimental
rte_mtr_stats_update(uint16_t port_id,
uint32_t mtr_id,
uint64_t stats_mask,
}
/** MTR object stats read */
-int
+int __rte_experimental
rte_mtr_stats_read(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_stats *stats,
* @b EXPERIMENTAL: this API may change without prior notice
*/
#include <stdint.h>
-
+#include <rte_compat.h>
#include <rte_common.h>
#ifdef __cplusplus
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_capabilities_get(uint16_t port_id,
struct rte_mtr_capabilities *cap,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_profile_add(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_meter_profile *profile,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_profile_delete(uint16_t port_id,
uint32_t meter_profile_id,
struct rte_mtr_error *error);
*
* @see enum rte_flow_action_type::RTE_FLOW_ACTION_TYPE_METER
*/
-int
+int __rte_experimental
rte_mtr_create(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_params *params,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_destroy(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_disable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_enable(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_error *error);
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_profile_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t meter_profile_id,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_meter_dscp_table_update(uint16_t port_id,
uint32_t mtr_id,
enum rte_mtr_color *dscp_table,
* @return
* 0 on success, non-zero error code otherwise.
*/
-int
+int __rte_experimental
rte_mtr_policer_actions_update(uint16_t port_id,
uint32_t mtr_id,
uint32_t action_mask,
*
* @see enum rte_mtr_stats_type
*/
-int
+int __rte_experimental
rte_mtr_stats_update(uint16_t port_id,
uint32_t mtr_id,
uint64_t stats_mask,
*
* @see enum rte_mtr_stats_type
*/
-int
+int __rte_experimental
rte_mtr_stats_read(uint16_t port_id,
uint32_t mtr_id,
struct rte_mtr_stats *stats,
* Copyright(c) 2017 Intel Corporation
*/
+#include <rte_compat.h>
#include <rte_flow_classify.h>
#include "rte_flow_classify_parse.h"
#include <rte_flow_driver.h>
void *entry_ptr; /* handle to the table entry for rule meta data */
};
-int
+int __rte_experimental
rte_flow_classify_validate(
struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
return 0;
}
-struct rte_flow_classifier *
+struct rte_flow_classifier * __rte_experimental
rte_flow_classifier_create(struct rte_flow_classifier_params *params)
{
struct rte_flow_classifier *cls;
table->ops.f_free(table->h_table);
}
-int
+int __rte_experimental
rte_flow_classifier_free(struct rte_flow_classifier *cls)
{
uint32_t i;
return 0;
}
-int
+int __rte_experimental
rte_flow_classify_table_create(struct rte_flow_classifier *cls,
struct rte_flow_classify_table_params *params)
{
return rule;
}
-struct rte_flow_classify_rule *
+struct rte_flow_classify_rule * __rte_experimental
rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
return NULL;
}
-int
+int __rte_experimental
rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
struct rte_flow_classify_rule *rule)
{
return ret;
}
-int
+int __rte_experimental
rte_flow_classifier_query(struct rte_flow_classifier *cls,
struct rte_mbuf **pkts,
const uint16_t nb_pkts,
* with rte_flow_classifier_free()
*/
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_ethdev.h>
#include <rte_ether.h>
* @return
* Handle to flow classifier instance on success or NULL otherwise
*/
-struct rte_flow_classifier *
+struct rte_flow_classifier * __rte_experimental
rte_flow_classifier_create(struct rte_flow_classifier_params *params);
/**
* @return
* 0 on success, error code otherwise
*/
-int
+int __rte_experimental
rte_flow_classifier_free(struct rte_flow_classifier *cls);
/**
* @return
* 0 on success, error code otherwise
*/
-int
+int __rte_experimental
rte_flow_classify_table_create(struct rte_flow_classifier *cls,
struct rte_flow_classify_table_params *params);
* @return
* 0 on success, error code otherwise
*/
-int
+int __rte_experimental
rte_flow_classify_validate(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
* @return
* A valid handle in case of success, NULL otherwise.
*/
-struct rte_flow_classify_rule *
+struct rte_flow_classify_rule * __rte_experimental
rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
* @return
* 0 on success, error code otherwise.
*/
-int
+int __rte_experimental
rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
struct rte_flow_classify_rule *rule);
* @return
* 0 on success, error code otherwise.
*/
-int
+int __rte_experimental
rte_flow_classifier_query(struct rte_flow_classifier *cls,
struct rte_mbuf **pkts,
const uint16_t nb_pkts,
#include <ctype.h>
#include <sys/queue.h>
+#include <rte_compat.h>
#include <rte_debug.h>
#include <rte_common.h>
#include <rte_log.h>
}
/* Helper to create a mbuf pool with given mempool ops name*/
-struct rte_mempool *
+struct rte_mempool * __rte_experimental
rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size,
int socket_id, const char *ops_name)
*/
#include <stdint.h>
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_config.h>
#include <rte_mempool.h>
* - EEXIST - a memzone with the same name already exists
* - ENOMEM - no appropriate memory area found in which to create memzone
*/
-struct rte_mempool *
+struct rte_mempool * __rte_experimental
rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size,
int socket_id, const char *ops_name);
*/
#include <string.h>
+#include <rte_compat.h>
#include <rte_eal.h>
#include <rte_mbuf.h>
#include <rte_errno.h>
#include <rte_mbuf_pool_ops.h>
-int
+int __rte_experimental
rte_mbuf_set_platform_mempool_ops(const char *ops_name)
{
const struct rte_memzone *mz;
return -EEXIST;
}
-const char *
+const char * __rte_experimental
rte_mbuf_platform_mempool_ops(void)
{
const struct rte_memzone *mz;
return mz->addr;
}
-int
+int __rte_experimental
rte_mbuf_set_user_mempool_ops(const char *ops_name)
{
const struct rte_memzone *mz;
}
-const char *
+const char * __rte_experimental
rte_mbuf_user_mempool_ops(void)
{
const struct rte_memzone *mz;
}
/* Return mbuf pool ops name */
-const char *
+const char * __rte_experimental
rte_mbuf_best_mempool_ops(void)
{
/* User defined mempool ops takes the priority */
* @b EXPERIMENTAL: this API may change without prior notice
*/
+#include <rte_compat.h>
+
#ifdef __cplusplus
extern "C" {
#endif
* - On success, zero.
* - On failure, a negative value.
*/
-int
+int __rte_experimental
rte_mbuf_set_platform_mempool_ops(const char *ops_name);
/**
* - On success, platform pool ops name.
* - On failure, NULL.
*/
-const char *
+const char * __rte_experimental
rte_mbuf_platform_mempool_ops(void);
/**
* - On success, zero.
* - On failure, a negative value.
*/
-int
+int __rte_experimental
rte_mbuf_set_user_mempool_ops(const char *ops_name);
/**
* - On success, user pool ops name..
* - On failure, NULL.
*/
-const char *
+const char * __rte_experimental
rte_mbuf_user_mempool_ops(void);
/**
* @return
* returns preferred mbuf pool ops name
*/
-const char *
+const char * __rte_experimental
rte_mbuf_best_mempool_ops(void);
#include <rte_arp.h>
#define RARP_PKT_SIZE 64
-struct rte_mbuf *
+struct rte_mbuf * __rte_experimental
rte_net_make_rarp_packet(struct rte_mempool *mpool,
const struct ether_addr *mac)
{
* @return
* - RARP packet pointer on success, or NULL on error
*/
-struct rte_mbuf *
+struct rte_mbuf * __rte_experimental
rte_net_make_rarp_packet(struct rte_mempool *mpool,
const struct ether_addr *mac);
#include <rte_malloc.h>
#include <rte_dev.h>
-
+#include "rte_compat.h"
#include "rte_security.h"
#include "rte_security_driver.h"
struct rte_security_session *
-rte_security_session_create(struct rte_security_ctx *instance,
+__rte_experimental rte_security_session_create(struct rte_security_ctx *instance,
struct rte_security_session_conf *conf,
struct rte_mempool *mp)
{
return sess;
}
-int
+int __rte_experimental
rte_security_session_update(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_session_conf *conf)
return instance->ops->session_update(instance->device, sess, conf);
}
-unsigned int
+unsigned int __rte_experimental
rte_security_session_get_size(struct rte_security_ctx *instance)
{
RTE_FUNC_PTR_OR_ERR_RET(*instance->ops->session_get_size, 0);
return instance->ops->session_get_size(instance->device);
}
-int
+int __rte_experimental
rte_security_session_stats_get(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_stats *stats)
return instance->ops->session_stats_get(instance->device, sess, stats);
}
-int
+int __rte_experimental
rte_security_session_destroy(struct rte_security_ctx *instance,
struct rte_security_session *sess)
{
return ret;
}
-int
+int __rte_experimental
rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_mbuf *m, void *params)
sess, m, params);
}
-void *
+void * __rte_experimental
rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
{
void *userdata = NULL;
return userdata;
}
-const struct rte_security_capability *
+const struct rte_security_capability * __rte_experimental
rte_security_capabilities_get(struct rte_security_ctx *instance)
{
RTE_FUNC_PTR_OR_ERR_RET(*instance->ops->capabilities_get, NULL);
return instance->ops->capabilities_get(instance->device);
}
-const struct rte_security_capability *
+const struct rte_security_capability * __rte_experimental
rte_security_capability_get(struct rte_security_ctx *instance,
struct rte_security_capability_idx *idx)
{
#include <netinet/ip.h>
#include <netinet/ip6.h>
+#include <rte_compat.h>
#include <rte_common.h>
#include <rte_crypto.h>
#include <rte_mbuf.h>
* - On success, pointer to session
* - On failure, NULL
*/
-struct rte_security_session *
+struct rte_security_session * __rte_experimental
rte_security_session_create(struct rte_security_ctx *instance,
struct rte_security_session_conf *conf,
struct rte_mempool *mp);
* - On success returns 0
* - On failure return errno
*/
-int
+int __rte_experimental
rte_security_session_update(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_session_conf *conf);
* - Size of the private data, if successful
* - 0 if device is invalid or does not support the operation.
*/
-unsigned int
+unsigned int __rte_experimental
rte_security_session_get_size(struct rte_security_ctx *instance);
/**
* - -EINVAL if session is NULL.
* - -EBUSY if not all device private data has been freed.
*/
-int
+int __rte_experimental
rte_security_session_destroy(struct rte_security_ctx *instance,
struct rte_security_session *sess);
* - On success, zero.
* - On failure, a negative value.
*/
-int
+int __rte_experimental
rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_mbuf *mb, void *params);
* - On success, userdata
* - On failure, NULL
*/
-void *
+void * __rte_experimental
rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md);
/**
* @param sym_op crypto operation
* @param sess security session
*/
-static inline int
+static inline int __rte_experimental
__rte_security_attach_session(struct rte_crypto_sym_op *sym_op,
struct rte_security_session *sess)
{
return 0;
}
-static inline void *
+static inline void * __rte_experimental
get_sec_session_private_data(const struct rte_security_session *sess)
{
return sess->sess_private_data;
}
-static inline void
+static inline void __rte_experimental
set_sec_session_private_data(struct rte_security_session *sess,
void *private_data)
{
* @param op crypto operation
* @param sess security session
*/
-static inline int
+static inline int __rte_experimental
rte_security_attach_session(struct rte_crypto_op *op,
struct rte_security_session *sess)
{
* - On success return 0
* - On failure errno
*/
-int
+int __rte_experimental
rte_security_session_stats_get(struct rte_security_ctx *instance,
struct rte_security_session *sess,
struct rte_security_stats *stats);
* - Returns array of security capabilities.
* - Return NULL if no capabilities available.
*/
-const struct rte_security_capability *
+const struct rte_security_capability * __rte_experimental
rte_security_capabilities_get(struct rte_security_ctx *instance);
/**
* index criteria.
* - Return NULL if the capability not matched on security instance.
*/
-const struct rte_security_capability *
+const struct rte_security_capability * __rte_experimental
rte_security_capability_get(struct rte_security_ctx *instance,
struct rte_security_capability_idx *idx);