--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>o-du/phy: ethdi.c File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">o-du/phy
+ </div>
+ <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_a4c74d6baed87eba72f3b201b7b4b8f2.html">fhi_lib</a></li><li class="navelem"><a class="el" href="dir_5cc0cc0264b57168b75ca56bde6cc403.html">lib</a></li><li class="navelem"><a class="el" href="dir_88a772f59406d8641777e8d7da928916.html">ethernet</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">ethdi.c File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This file has all definitions for the Ethernet Data Interface Layer.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include <stdio.h></code><br />
+<code>#include <string.h></code><br />
+<code>#include <stdint.h></code><br />
+<code>#include <errno.h></code><br />
+<code>#include <sys/queue.h></code><br />
+<code>#include <err.h></code><br />
+<code>#include <assert.h></code><br />
+<code>#include <linux/limits.h></code><br />
+<code>#include <sys/types.h></code><br />
+<code>#include <stdlib.h></code><br />
+<code>#include <sys/time.h></code><br />
+<code>#include <time.h></code><br />
+<code>#include <unistd.h></code><br />
+<code>#include <rte_config.h></code><br />
+<code>#include <rte_common.h></code><br />
+<code>#include <rte_log.h></code><br />
+<code>#include <rte_memory.h></code><br />
+<code>#include <rte_memcpy.h></code><br />
+<code>#include <rte_memzone.h></code><br />
+<code>#include <rte_eal.h></code><br />
+<code>#include <rte_per_lcore.h></code><br />
+<code>#include <rte_launch.h></code><br />
+<code>#include <rte_atomic.h></code><br />
+<code>#include <rte_cycles.h></code><br />
+<code>#include <rte_prefetch.h></code><br />
+<code>#include <rte_lcore.h></code><br />
+<code>#include <rte_branch_prediction.h></code><br />
+<code>#include <rte_interrupts.h></code><br />
+<code>#include <rte_pci.h></code><br />
+<code>#include <rte_debug.h></code><br />
+<code>#include <rte_ethdev.h></code><br />
+<code>#include <rte_ring.h></code><br />
+<code>#include <rte_mbuf.h></code><br />
+<code>#include <rte_timer.h></code><br />
+<code>#include "<a class="el" href="ethernet_8h_source.html">ethernet.h</a>"</code><br />
+<code>#include "<a class="el" href="ethdi_8h_source.html">ethdi.h</a>"</code><br />
+<code>#include "<a class="el" href="xran__fh__o__du_8h_source.html">xran_fh_o_du.h</a>"</code><br />
+<code>#include "<a class="el" href="xran__mlog__lnx_8h_source.html">xran_mlog_lnx.h</a>"</code><br />
+<code>#include "<a class="el" href="xran__printf_8h_source.html">xran_printf.h</a>"</code><br />
+<code>#include "<a class="el" href="xran__lib__mlog__tasks__id_8h_source.html">../src/xran_lib_mlog_tasks_id.h</a>"</code><br />
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for ethdi.c:</div>
+<div class="dyncontent">
+<div class="center"><img src="ethdi_8c__incl.png" border="0" usemap="#ethdi_8c" alt=""/></div>
+<map name="ethdi_8c" id="ethdi_8c">
+<area shape="rect" id="node36" href="ethernet_8h.html" title="This file has all definitions for the Ethernet Data Interface Layer. " alt="" coords="3453,169,3533,196"/>
+<area shape="rect" id="node38" href="ethdi_8h.html" title="This file has all definitions for the Ethernet Data Interface Layer. " alt="" coords="3343,87,3405,114"/>
+<area shape="rect" id="node39" href="xran__fh__o__du_8h.html" title="This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG..." alt="" coords="668,169,779,196"/>
+<area shape="rect" id="node46" href="xran__mlog__lnx_8h.html" title="xran_mlog_lnx.h" alt="" coords="3479,87,3597,114"/>
+<area shape="rect" id="node47" href="xran__printf_8h.html" title="Modules provide debug prints and utility functions. " alt="" coords="1169,169,1264,196"/>
+<area shape="rect" id="node48" href="xran__lib__mlog__tasks__id_8h.html" title="../src/xran_lib_mlog\l_tasks_id.h" alt="" coords="3671,80,3807,121"/>
+</map>
+</div>
+</div>
+<p><a href="ethdi_8c_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a369266c24eacffb87046522897a570d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a369266c24eacffb87046522897a570d5">_GNU_SOURCE</a></td></tr>
+<tr class="separator:a369266c24eacffb87046522897a570d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4c38cae04fab7c03bcfef74030da111e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a4c38cae04fab7c03bcfef74030da111e">BURST_RX_IO_SIZE</a>   48</td></tr>
+<tr class="separator:a4c38cae04fab7c03bcfef74030da111e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9a0ad39cc5436a5f75a4763bcfd12284"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a9a0ad39cc5436a5f75a4763bcfd12284">CHECK_INTERVAL</a>   100 /* 100ms */</td></tr>
+<tr class="separator:a9a0ad39cc5436a5f75a4763bcfd12284"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8656398fc65eefb503ceaf1006c095ac"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a8656398fc65eefb503ceaf1006c095ac">MAX_CHECK_TIME</a>   90 /* 9s (90 * 100ms) in total */</td></tr>
+<tr class="separator:a8656398fc65eefb503ceaf1006c095ac"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a77f0a4b49dc21be816aefa3066debfa7"><td class="memItemLeft" align="right" valign="top">struct rte_mbuf * </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a77f0a4b49dc21be816aefa3066debfa7">xran_ethdi_mbuf_alloc</a> (void)</td></tr>
+<tr class="separator:a77f0a4b49dc21be816aefa3066debfa7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab6a05b3b37887e49b0017e1668317829"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#ab6a05b3b37887e49b0017e1668317829">xran_ethdi_mbuf_send</a> (struct rte_mbuf *mb, uint16_t <a class="el" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>)</td></tr>
+<tr class="separator:ab6a05b3b37887e49b0017e1668317829"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab8a8c592ac06111ce690ab5a6207a6eb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#ab8a8c592ac06111ce690ab5a6207a6eb">xran_ethdi_mbuf_send_cp</a> (struct rte_mbuf *mb, uint16_t <a class="el" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>)</td></tr>
+<tr class="separator:ab8a8c592ac06111ce690ab5a6207a6eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a69c763967ba7e28c4a589ce624c226ff"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a69c763967ba7e28c4a589ce624c226ff">xran_register_ethertype_handler</a> (uint16_t <a class="el" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>, <a class="el" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a> callback)</td></tr>
+<tr class="separator:a69c763967ba7e28c4a589ce624c226ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a20cda8ace162cadfe3d21c06385fdebe"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a20cda8ace162cadfe3d21c06385fdebe">xran_handle_ether</a> (uint16_t <a class="el" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a>, struct rte_mbuf *pkt, uint64_t rx_time)</td></tr>
+<tr class="separator:a20cda8ace162cadfe3d21c06385fdebe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af110b40ee89935ebe18d65ef84de1359"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#af110b40ee89935ebe18d65ef84de1359">xran_ethdi_filter_packet</a> (struct rte_mbuf *pkt, uint64_t rx_time)</td></tr>
+<tr class="separator:af110b40ee89935ebe18d65ef84de1359"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a97dcf8200aebed714f47764c302a06b5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a97dcf8200aebed714f47764c302a06b5">xran_ethdi_init_dpdk_io</a> (char *name, const struct <a class="el" href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a> *io_cfg, int *lcore_id, struct ether_addr *p_lls_cu_addr, struct ether_addr *p_ru_addr, uint16_t cp_vlan, uint16_t up_vlan)</td></tr>
+<tr class="separator:a97dcf8200aebed714f47764c302a06b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae5cd564d3dc5eb89dbe0dd1fa105b645"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#ae5cd564d3dc5eb89dbe0dd1fa105b645">process_dpdk_io</a> (void)</td></tr>
+<tr class="separator:ae5cd564d3dc5eb89dbe0dd1fa105b645"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a87322175547262f4937875027a108e90"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a87322175547262f4937875027a108e90">g_ethdi_ctx</a> = { 0 }</td></tr>
+<tr class="separator:a87322175547262f4937875027a108e90"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aef5f52e6a4f49171518a59382eb03df5"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326">xran_if_state</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#aef5f52e6a4f49171518a59382eb03df5">xran_if_current_state</a> = <a class="el" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326a57a68dd3f4413f7cc255838c4442938c">XRAN_STOPPED</a></td></tr>
+<tr class="separator:aef5f52e6a4f49171518a59382eb03df5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3f53957f895afe4f72ecdc94556077d7"><td class="memItemLeft" >struct {</td></tr>
+<tr class="memitem:aa9296c58dc24c63c4ee927db394a97d7"><td class="memItemLeft" >   uint16_t   <a class="el" href="ethdi_8c.html#aa9296c58dc24c63c4ee927db394a97d7">ethertype</a></td></tr>
+<tr class="separator:aa9296c58dc24c63c4ee927db394a97d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a964502cdb0a980bb8110971755faec77"><td class="memItemLeft" >   <a class="el" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a>   <a class="el" href="ethdi_8c.html#a964502cdb0a980bb8110971755faec77">fn</a></td></tr>
+<tr class="separator:a964502cdb0a980bb8110971755faec77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3f53957f895afe4f72ecdc94556077d7"><td class="memItemLeft" valign="top">} </td><td class="memItemRight" valign="bottom"><a class="el" href="ethdi_8c.html#a3f53957f895afe4f72ecdc94556077d7">xran_ethertype_handlers</a> []</td></tr>
+<tr class="separator:a3f53957f895afe4f72ecdc94556077d7"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This file has all definitions for the Ethernet Data Interface Layer. </p>
+<dl class="section author"><dt>Author</dt><dd>Intel Corporation </dd></dl>
+
+<p class="definition">Definition in file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a369266c24eacffb87046522897a570d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a369266c24eacffb87046522897a570d5">◆ </a></span>_GNU_SOURCE</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define _GNU_SOURCE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00026">26</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a4c38cae04fab7c03bcfef74030da111e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c38cae04fab7c03bcfef74030da111e">◆ </a></span>BURST_RX_IO_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BURST_RX_IO_SIZE   48</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00072">72</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a9a0ad39cc5436a5f75a4763bcfd12284"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9a0ad39cc5436a5f75a4763bcfd12284">◆ </a></span>CHECK_INTERVAL</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define CHECK_INTERVAL   100 /* 100ms */</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8656398fc65eefb503ceaf1006c095ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8656398fc65eefb503ceaf1006c095ac">◆ </a></span>MAX_CHECK_TIME</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define MAX_CHECK_TIME   90 /* 9s (90 * 100ms) in total */</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ae5cd564d3dc5eb89dbe0dd1fa105b645"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5cd564d3dc5eb89dbe0dd1fa105b645">◆ </a></span>process_dpdk_io()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t process_dpdk_io </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00445">445</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="af110b40ee89935ebe18d65ef84de1359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af110b40ee89935ebe18d65ef84de1359">◆ </a></span>xran_ethdi_filter_packet()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_ethdi_filter_packet </td>
+ <td>(</td>
+ <td class="paramtype">struct rte_mbuf * </td>
+ <td class="paramname"><em>pkt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t </td>
+ <td class="paramname"><em>rx_time</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00156">156</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="ethdi_8c_af110b40ee89935ebe18d65ef84de1359_icgraph.png" border="0" usemap="#ethdi_8c_af110b40ee89935ebe18d65ef84de1359_icgraph" alt=""/></div>
+<map name="ethdi_8c_af110b40ee89935ebe18d65ef84de1359_icgraph" id="ethdi_8c_af110b40ee89935ebe18d65ef84de1359_icgraph">
+<area shape="rect" id="node2" href="xran__common_8h.html#a4e156a8a72cc16b05c6ad0532df4e75a" title="process_ring" alt="" coords="213,5,309,32"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a97dcf8200aebed714f47764c302a06b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a97dcf8200aebed714f47764c302a06b5">◆ </a></span>xran_ethdi_init_dpdk_io()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_ethdi_init_dpdk_io </td>
+ <td>(</td>
+ <td class="paramtype">char * </td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const struct <a class="el" href="structxran__io__loop__cfg.html">xran_io_loop_cfg</a> * </td>
+ <td class="paramname"><em>io_cfg</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int * </td>
+ <td class="paramname"><em>lcore_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct ether_addr * </td>
+ <td class="paramname"><em>p_lls_cu_addr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct ether_addr * </td>
+ <td class="paramname"><em>p_ru_addr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>cp_vlan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>up_vlan</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00288">288</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="ethdi_8c_a97dcf8200aebed714f47764c302a06b5_icgraph.png" border="0" usemap="#ethdi_8c_a97dcf8200aebed714f47764c302a06b5_icgraph" alt=""/></div>
+<map name="ethdi_8c_a97dcf8200aebed714f47764c302a06b5_icgraph" id="ethdi_8c_a97dcf8200aebed714f47764c302a06b5_icgraph">
+<area shape="rect" id="node2" href="xran__main_8c.html#a4ea0e9c036a1dc7605f53f1f862f4952" title="xran_init" alt="" coords="212,5,283,32"/>
+<area shape="rect" id="node3" href="classxran_lib_wraper.html#a126b53d8cc57521b34496dbe3a26621f" title="xranLibWraper::SetUp" alt="" coords="331,5,481,32"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a77f0a4b49dc21be816aefa3066debfa7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77f0a4b49dc21be816aefa3066debfa7">◆ </a></span>xran_ethdi_mbuf_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct rte_mbuf* xran_ethdi_mbuf_alloc </td>
+ <td>(</td>
+ <td class="paramtype">void </td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00077">77</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="ethdi_8c_a77f0a4b49dc21be816aefa3066debfa7_icgraph.png" border="0" usemap="#ethdi_8c_a77f0a4b49dc21be816aefa3066debfa7_icgraph" alt=""/></div>
+<map name="ethdi_8c_a77f0a4b49dc21be816aefa3066debfa7_icgraph" id="ethdi_8c_a77f0a4b49dc21be816aefa3066debfa7_icgraph">
+<area shape="rect" id="node2" href="class_c__plane.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="C_plane::SetUp" alt="" coords="208,5,323,32"/>
+<area shape="rect" id="node3" href="xran__common_8h.html#ab67b9cc6e54d8ba3945b265b47af743c" title="send_symbol_ex" alt="" coords="205,56,325,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="ab6a05b3b37887e49b0017e1668317829"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6a05b3b37887e49b0017e1668317829">◆ </a></span>xran_ethdi_mbuf_send()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_ethdi_mbuf_send </td>
+ <td>(</td>
+ <td class="paramtype">struct rte_mbuf * </td>
+ <td class="paramname"><em>mb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>ethertype</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00082">82</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="ab8a8c592ac06111ce690ab5a6207a6eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8a8c592ac06111ce690ab5a6207a6eb">◆ </a></span>xran_ethdi_mbuf_send_cp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_ethdi_mbuf_send_cp </td>
+ <td>(</td>
+ <td class="paramtype">struct rte_mbuf * </td>
+ <td class="paramname"><em>mb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>ethertype</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00094">94</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a20cda8ace162cadfe3d21c06385fdebe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a20cda8ace162cadfe3d21c06385fdebe">◆ </a></span>xran_handle_ether()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_handle_ether </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>ethertype</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct rte_mbuf * </td>
+ <td class="paramname"><em>pkt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t </td>
+ <td class="paramname"><em>rx_time</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00140">140</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a69c763967ba7e28c4a589ce624c226ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69c763967ba7e28c4a589ce624c226ff">◆ </a></span>xran_register_ethertype_handler()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int xran_register_ethertype_handler </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t </td>
+ <td class="paramname"><em>ethertype</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a> </td>
+ <td class="paramname"><em>callback</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00124">124</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="ethdi_8c_a69c763967ba7e28c4a589ce624c226ff_icgraph.png" border="0" usemap="#ethdi_8c_a69c763967ba7e28c4a589ce624c226ff_icgraph" alt=""/></div>
+<map name="ethdi_8c_a69c763967ba7e28c4a589ce624c226ff_icgraph" id="ethdi_8c_a69c763967ba7e28c4a589ce624c226ff_icgraph">
+<area shape="rect" id="node2" href="xran__main_8c.html#a4ea0e9c036a1dc7605f53f1f862f4952" title="xran_init" alt="" coords="212,13,283,39"/>
+<area shape="rect" id="node3" href="classxran_lib_wraper.html#a126b53d8cc57521b34496dbe3a26621f" title="xranLibWraper::SetUp" alt="" coords="331,13,481,39"/>
+</map>
+</div>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="aa9296c58dc24c63c4ee927db394a97d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa9296c58dc24c63c4ee927db394a97d7">◆ </a></span>ethertype</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint16_t ethertype</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00114">114</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a964502cdb0a980bb8110971755faec77"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a964502cdb0a980bb8110971755faec77">◆ </a></span>fn</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="ethdi_8h.html#a7c379f4a70692477327fb1a3538cfd1e">ethertype_handler</a> fn</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00115">115</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a87322175547262f4937875027a108e90"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a87322175547262f4937875027a108e90">◆ </a></span>g_ethdi_ctx</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structxran__ethdi__ctx.html">xran_ethdi_ctx</a> g_ethdi_ctx = { 0 }</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00074">74</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+<a id="a3f53957f895afe4f72ecdc94556077d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f53957f895afe4f72ecdc94556077d7">◆ </a></span>xran_ethertype_handlers</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct { ... } xran_ethertype_handlers[]</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> { <a class="code" href="ethernet_8h.html#a0118652ad4c1f706fd9b626221530738">ETHER_TYPE_ETHDI</a>, NULL },</div><div class="line"> { <a class="code" href="ethernet_8h.html#af87cccd4396539ae2fd0000a61907e92">ETHER_TYPE_ECPRI</a>, NULL },</div><div class="line"> { <a class="code" href="ethernet_8h.html#a12f018df6b9efaa5217f341d0d56e66f">ETHER_TYPE_START_TX</a>, NULL }</div><div class="line">}</div><div class="ttc" id="ethernet_8h_html_af87cccd4396539ae2fd0000a61907e92"><div class="ttname"><a href="ethernet_8h.html#af87cccd4396539ae2fd0000a61907e92">ETHER_TYPE_ECPRI</a></div><div class="ttdeci">#define ETHER_TYPE_ECPRI</div><div class="ttdef"><b>Definition:</b> <a href="ethernet_8h_source.html#l00042">ethernet.h:42</a></div></div>
+<div class="ttc" id="ethernet_8h_html_a12f018df6b9efaa5217f341d0d56e66f"><div class="ttname"><a href="ethernet_8h.html#a12f018df6b9efaa5217f341d0d56e66f">ETHER_TYPE_START_TX</a></div><div class="ttdeci">#define ETHER_TYPE_START_TX</div><div class="ttdef"><b>Definition:</b> <a href="ethernet_8h_source.html#l00044">ethernet.h:44</a></div></div>
+<div class="ttc" id="ethernet_8h_html_a0118652ad4c1f706fd9b626221530738"><div class="ttname"><a href="ethernet_8h.html#a0118652ad4c1f706fd9b626221530738">ETHER_TYPE_ETHDI</a></div><div class="ttdeci">#define ETHER_TYPE_ETHDI</div><div class="ttdef"><b>Definition:</b> <a href="ethernet_8h_source.html#l00041">ethernet.h:41</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a id="aef5f52e6a4f49171518a59382eb03df5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aef5f52e6a4f49171518a59382eb03df5">◆ </a></span>xran_if_current_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326">xran_if_state</a> xran_if_current_state = <a class="el" href="xran__fh__o__du_8h.html#a2f600110ab5726a0f21375b7f24c0326a57a68dd3f4413f7cc255838c4442938c">XRAN_STOPPED</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="ethdi_8c_source.html#l00075">75</a> of file <a class="el" href="ethdi_8c_source.html">ethdi.c</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>