<title>DVB Network API</title>
<para>The DVB net device controls the mapping of data packages that are
    part of a transport stream to be mapped into a virtual network interface,
    visible through the standard Linux network protocol stack.</para>
<para>Currently, two encapsulations are supported:</para>
<itemizedlist>
    <listitem><para><ulink url="http://en.wikipedia.org/wiki/Multiprotocol_Encapsulation">
	Multi Protocol Encapsulation (MPE)</ulink></para></listitem>
    <listitem><para><ulink url="http://en.wikipedia.org/wiki/Unidirectional_Lightweight_Encapsulation">
	Ultra Lightweight Encapsulation (ULE)</ulink></para></listitem>
</itemizedlist>

<para>In order to create the Linux virtual network interfaces, an application
    needs to tell to the Kernel what are the PIDs and the encapsulation types
    that are present on the transport stream. This is done through
    <constant>/dev/dvb/adapter?/net?</constant> device node.
    The data will be available via virtual <constant>dvb?_?</constant>
    network interfaces, and will be controlled/routed via the standard
    ip tools (like ip, route, netstat, ifconfig, etc).</para>
<para> Data types and and ioctl definitions are defined via
    <constant>linux/dvb/net.h</constant> header.</para>

<section id="net_fcalls">
<title>DVB net Function Calls</title>


<refentry id="NET_ADD_IF">
  <refmeta>
    <refentrytitle>ioctl NET_ADD_IF</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>NET_ADD_IF</refname>
    <refpurpose>Creates a new network interface for a given Packet ID.</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>
        <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fe_fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>FE_SET_TONE</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>net_if</parameter></term>
	<listitem>
	  <para>pointer to &dvb-net-if;</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

<para>The NET_ADD_IF ioctl system call selects the Packet ID (PID) that
    contains a TCP/IP traffic, the type of encapsulation to be used (MPE or ULE)
    and the interface number for the new interface to be created. When the
    system call successfully returns, a new virtual network interface is  created.</para>
<para>The &dvb-net-if;::ifnum field will be filled with the number of the
    created interface.</para>

&return-value-dvb;
</refsect1>

<refsect1 id="dvb-net-if-t">
<title>struct <structname>dvb_net_if</structname> description</title>

<table pgwide="1" frame="none" id="dvb-net-if">
    <title>struct <structname>dvb_net_if</structname></title>
    <tgroup cols="2">
	&cs-def;
	<thead>
	<row>
	    <entry>ID</entry>
	    <entry>Description</entry>
	</row>
	</thead>
	<tbody valign="top">
	<row>
	    <entry align="char">pid</entry>
	    <entry align="char">Packet ID (PID) of the MPEG-TS that contains
		data</entry>
	</row><row>
	    <entry align="char">ifnum</entry>
	    <entry align="char">number of the DVB interface.</entry>
	</row><row>
	    <entry align="char">feedtype</entry>
	    <entry align="char">Encapsulation type of the feed. It can be:
		<constant>DVB_NET_FEEDTYPE_MPE</constant> for MPE encoding
		or
		<constant>DVB_NET_FEEDTYPE_ULE</constant> for ULE encoding.
		</entry>
	</row>
        </tbody>
    </tgroup>
</table>
</refsect1>
</refentry>

<refentry id="NET_REMOVE_IF">
  <refmeta>
    <refentrytitle>ioctl NET_REMOVE_IF</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>NET_REMOVE_IF</refname>
    <refpurpose>Removes a network interface.</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>int <parameter>ifnum</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>
        <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fe_fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>FE_SET_TONE</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>net_if</parameter></term>
	<listitem>
	  <para>number of the interface to be removed</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

<para>The NET_REMOVE_IF ioctl deletes an interface previously created
    via &NET-ADD-IF;.</para>

&return-value-dvb;
</refsect1>
</refentry>


<refentry id="NET_GET_IF">
  <refmeta>
    <refentrytitle>ioctl NET_GET_IF</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>NET_GET_IF</refname>
    <refpurpose>Read the configuration data of an interface created via
	&NET-ADD-IF;.</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>
        <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fe_fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>FE_SET_TONE</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>net_if</parameter></term>
	<listitem>
	  <para>pointer to &dvb-net-if;</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

<para>The NET_GET_IF ioctl uses the interface number given by the
    &dvb-net-if;::ifnum field and fills the content of &dvb-net-if; with
    the packet ID and encapsulation type used on such interface. If the
    interface was not created yet with &NET-ADD-IF;, it will return -1 and
    fill the <constant>errno</constant> with <constant>EINVAL</constant>
    error code.</para>

&return-value-dvb;
</refsect1>
</refentry>
</section>
