summaryrefslogtreecommitdiffstats
path: root/kernel/tools/virtio/uapi/linux/uio.h
blob: 7230e900220768c7281e14ae7fa043c9fc2f1718 (plain)
1
#include <sys/uio.h>
/* Literal.String.Delimiter */ .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ .highlight .se { color: #ae81ff } /* Literal.String.Escape */ .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ .highlight .sx { color: #e6db74 } /* Literal.String.Other */ .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
heat_template_version: 2014-10-16
description: HOT template to create a DPI

parameters:
   default_net:
      type: string
   default_subnet:
      type: string
   source_net:
      type: string
   source_subnet:
      type: string
   destination_net:
      type: string
   destination_subnet:
      type: string
   internal_net:
      type: string
   internal_subnet:
      type: string
   node:
      type: string
      default: compB
   name:
      type: string
      default: vtc
   ip_family:
      type: string
   timeout:
      type: number
      description: Timeout for WaitCondition, depends on your image and environment
      default: 1000

resources:
   wait_condition:
      type: OS::Heat::WaitCondition
      properties:
         handle: {get_resource: wait_handle}
         count: 1
         timeout: {get_param: timeout}

   wait_handle:
      type: OS::Heat::WaitConditionHandle


   ### DEFAULT NETWORK FOR MERLIN DATA
   port_1:
      type: OS::Neutron::Port
      properties:
         network: { get_param: default_net }
         binding:vnic_type: normal
         fixed_ips:
            - subnet: { get_param: default_subnet }

   ### NETWORK FOR RECEIVING TRAFFIC
   port_2:
      type: OS::Neutron::Port
      properties:
         network: { get_param: source_net }
         binding:vnic_type: #vnic_type
         fixed_ips:
            - subnet: { get_param: source_subnet }

   ### NETWORK FOR SENDING TRAFFIC
   port_3:
      type: OS::Neutron::Port
      properties:
         network: { get_param: destination_net }
         binding:vnic_type: #vnic_type
         fixed_ips:
            - subnet: { get_param: destination_subnet }

   flavor:
      type: OS::Nova::Flavor
      properties:
         disk: 20
         ram: #ram
         vcpus: #vcpus
         #extra_specs: { node: { get_param: node }, "hw:cpu_policy": "#core_pinning_enabled", "hw:cpu_threads_policy": "#core_pinning_mode", "hw:mem_page_size": "#hugepages" }
         extra_specs: { node: { get_param: node } }

   server:
      type: OS::Nova::Server
      properties:
         name: vTC
         key_name: test
         image: ubuntu1404
         user_data:
                str_replace:
                    template: |
                        #!/bin/sh

                        # Creation of a user
                        NAME=$name
                        echo "Creating custom user..."
                        useradd clouduser -g admin -s /bin/bash -m
                        echo clouduser:secrete | chpasswd
                        echo "Enabling ssh password login..."
                        sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
                        service ssh restart
                        sleep 1

                        # wake up interfaces
                        ifconfig eth1 up
                        ifconfig eth2 up
                        dhclient eth1
                        dhclient eth2

                        sed -i 's/localhost/localhost vtc/g' /etc/hosts
                        ip route del 0/0
                        route add default gw 192.168.200.1

                        AA=$(netstat -ie | grep -B1 $IP_FAMILY | awk '{ print $1 }')
                        BB=$(echo $AA | awk '{ print $1 }')

                        # Setup Instrumentation Agent
                        rm -rf cimmaron
                        mkdir cimmaron
                        cd cimmaron
                        apt-get install -y zip
                        wget http://10.2.1.65/~iolie/merlin/MerlinAgent-12-06-2015-TNovaVM-001.zip
                        unzip MerlinAgent-12-06-2015-TNovaVM-001.zip
                        ./updateConfiguration.py ./instrumentation.cfg tags source=tnova_vm
                        ./updateConfiguration.py ./instrumentation.cfg tags role="$NAME"
                        nohup ./Agent.py ./instrumentation.cfg >log.out 2>&1 &
                        cd ..

                        # Setup for PF_RING and bridge between interfaces
                        apt-get update
                        apt-get install -y git build-essential gcc libnuma-dev flex byacc libjson0-dev dh-autoreconf libpcap-dev libpulse-dev libtool pkg-config

                        # Setup multicast
                        echo smcroute -d mgroup from $BB group 224.192.16.1 > /etc/smcroute.conf
                        cd /home/clouduser/
                        git clone https://github.com/troglobit/smcroute.git
                        cd smcroute
                        sed -i 's/aclocal-1.11/aclocal/g' ./autogen.sh
                        sed -i 's/automake-1.11/automake/g' ./autogen.sh
                        ./autogen.sh
                        ./configure
                        make
                        make install
                        cd ..
                        touch multicast.sh
                        echo "#!/bin/bash" > multicast.sh
                        echo "while [ true ]" >> multicast.sh
                        echo "do" >> multicast.sh
                        echo "  smcroute -k" >> multicast.sh
                        echo "  smcroute -d" >> multicast.sh
                        echo "  sleep 50" >> multicast.sh
                        echo "done" >> multicast.sh
                        chmod +x multicast.sh
                        ./multicast.sh &

                        # Setup for PF_RING and bridge between interfaces
                        # Akis Repository
                        #git clone https://akiskourtis:ptindpi@bitbucket.org/akiskourtis/vtc.git
                        #cd vtc
                        #git checkout stable

                        # Intel Repository
                        git clone http://vincenzox.m.riccobene%40intel.com:vincenzo@134.191.243.6:8081/t-nova/vtc_master.git
                        cd vtc_master

                        cd nDPI
                        NDPI_DIR=$(pwd)
                        echo $NDPI_DIR
                        NDPI_INCLUDE=$(pwd)/src/include
                        echo $NDPI_INCLUDE
                        ./autogen.sh
                        ./configure
                        make
                        make install
                        cd ..
                        cd PF_RING
                        make
                        cd userland/examples/
                        sed -i 's/EXTRA_LIBS =/EXTRA_LIBS = '"${NDPI_DIR}"'/src/lib/.libs/libndpi.a -ljson-c/g' ./Makefile
                        sed -i 's/ -Ithird-party/ -Ithird-party -I'"$NDPI_INCLUDE"' -I'"$NDPI_DIR"'/g' ./Makefile
                        make
                        cd ../..
                        cd ..
                        cd ..
                        #insmod ./vtc/PF_RING/kernel/pf_ring.ko min_num_slots=8192 enable_debug=1 quick_mode=1 enable_tx_capture=0
                        #./vtc/PF_RING/userland/examples/pfbridge -a eth1 -b eth2 &
                        insmod ./vtc_master/PF_RING/kernel/pf_ring.ko min_num_slots=8192 enable_debug=1 quick_mode=1 enable_tx_capture=0
                        ./vtc_master/PF_RING/userland/examples/pfbridge -a eth1 -b eth2 &
                        wc_notify --data-binary '{"status": "SUCCESS"}'
                    params:
                        wc_notify: { get_attr: ['wait_handle', 'curl_cli'] }
                        $name: { get_param: name }
                        $IP_FAMILY: { get_param: ip_family }

         flavor: { get_resource: flavor }
         networks:
            - port: { get_resource: port_1 }
            - port: { get_resource: port_2 }
            - port: { get_resource: port_3 }
outputs: