0x3 Binary Options


NOMBRE uuencode, uudecode - codifica un archivo binario o decodifica su representación codificada SYNOPSIS uuencode archivo-fuente decodepathname uudecode - p archivo-codificado DESCRIPCIÓN uuencode uuencode convierte un archivo binario en una representación codificada que se puede enviar usando mail (1). Codifica el contenido del archivo de origen. O la entrada estándar si no se da ningún argumento de archivo de origen. El argumento decodepathname es obligatorio. El nombre decodepath se incluye en el encabezado de los archivos codificados como el nombre del archivo en el que uudecode es colocar los datos binarios (decodificados). Uuencode también incluye los modos de permiso de fuente-archivo, (excepto setuid, setgid y sticky-bits), de modo que decodepathname se recrea con los mismos modos de permiso. Uudecode uudecode lee un archivo codificado. Quita cualquier línea principal y de arrastre añadida por los programas de correo y recrea los datos binarios originales con el nombre de archivo y el modo especificado en el encabezado. El archivo codificado es un archivo de texto portátil ordinario que puede ser editado por cualquier editor de texto. Lo mejor es cambiar el modo o descodificar el nombre del camino en el encabezado para evitar dañar el binario decodificado. OPCIONES uudecode decodifica el archivo codificado y lo envía a la salida estándar. Esto permite uudecode ser utilizado en una tubería. OPERANDS uuencode Los siguientes operandos son soportados por uuencode: La ruta del archivo en el que la utilidad uudecode colocará el archivo decodificado. Si hay caracteres en decodepathname que no están en el conjunto de caracteres de nombre de archivo portátil, los resultados no se especifican. Una ruta de acceso del archivo que se va a codificar. Uudecode El siguiente operando es soportado por uudecode: La ruta de acceso de un archivo que contiene la salida de uuencode. USO Vea el archivo grande (5) para la descripción del comportamiento de uuencode y uudecode al encontrar archivos mayores o iguales a 2 Gbytes (2 31 bytes). VARIABLES DE AMBIENTE Véase environnement (5) para descripciones de las siguientes variables de entorno que afectan a la ejecución de uuencode y uudecode. LCCTYPE. LCMESSAGES. Y NLSPATH. OUTPUT stdout La salida estándar es un archivo de texto (codificado en el conjunto de caracteres de la localidad actual) que comienza con la línea: startssn, lt mode gt, decodepathname y termina con la línea: En ambos casos, las líneas no tienen antecedentes Caracteres en blanco. El algoritmo que se utiliza para las líneas entre el comienzo y el final toma tres octetos como entrada y escribe cuatro caracteres de salida dividiendo la entrada en intervalos de seis bits en cuatro octetos, que contiene datos en los seis bits inferiores solamente. Estos octetos se convierten en caracteres agregando un valor de 0x20 a cada octeto, de modo que cada octeto se encuentre en el rango 0x20-0x5f, y luego se supone que representa un carácter imprimible. A continuación, se traducirá en los códigos de caracteres correspondientes para el conjunto de códigos en uso en la localidad actual. (Por ejemplo, el octeto 0x41, que representa A, se traduciría a A en el conjunto de códigos actual, como 0xc1 si fuera EBCDIC). Cuando los bits de dos octetos se combinan, los bits menos significativos del primer octeto se desplazan a la izquierda Y combinado con los bits más significativos del segundo octeto desplazado a la derecha. Así, los tres octetos A, B, C se convierten en los cuatro octetos: Estos octetos se traducen a continuación en el conjunto de caracteres local. Cada línea codificada contiene un carácter de longitud, igual al número de caracteres a descodificar más 0x20 traducido al conjunto de caracteres local como se ha descrito anteriormente, seguido por los caracteres codificados. El número máximo de octetos a codificar en cada línea es 45. SALIDA ESTADO Se devuelven los siguientes valores de salida: Se produjo un error. tnfdumpndash convertir archivo TNF binario en ASCII Sinopsis Descripción La utilidad tnfdump convierte los archivos de seguimiento TNF binarios especificados en ASCII. La salida ASCII se puede utilizar para realizar análisis de rendimiento. El modo predeterminado (sin la opción - r) imprime todos los registros de eventos (que fueron generados por TNFPROBE (3TNF)) y los registros de descriptor de eventos solamente. También ordena los eventos por el tiempo. Opciones Se admite la siguiente opción: Hace una conversión sin formato de TNF a ASCII. La salida es una transalación literal del archivo TNF binario e incluye todos los registros del archivo. Esta salida es útil sólo si tiene una buena comprensión de TNF. Una muestra de salida se muestra en los ejemplos siguientes. Imprime todos los valores de argumento de tipo no firmado TNF en formato hexadecimal en lugar de formato decimal. Valores devueltos tnfdump devuelve 0 en salida satisfactoria. Ejemplos Ejemplo 1 Conversión de un archivo en ASCII Para convertir el archivo / tmp / trace-2130 en ASCII, utilice el comando tnfdump y el nombre del archivo de rastreo binario. Tenga en cuenta que la salida tnfdump pasa a stdout de forma predeterminada. Todas las sondas que se encuentran durante la ejecución tienen una descripción de la misma impresa. La descripción es una por línea prefijada por la sonda de palabra clave. El nombre de la sonda está en comillas dobles después de la palabra clave tnfname. La descripción de esta sonda está en comillas dobles después de la palabra clave tnfstring. Se imprimirá un encabezado después de que se hayan impreso todas las descripciones de las sondas. La primera columna da el tiempo transcurrido en milisegundos desde el primer evento. La segunda columna da el tiempo transcurrido en milisegundos desde el evento anterior. Las siguientes cuatro columnas son el ID del proceso, ID del lwp, ID del hilo y número de la CPU. La siguiente columna es el nombre de la sonda que generó este evento. Esto se puede adaptar a la descripción de la sonda explicada anteriormente. La última columna son los datos que contiene el evento, formateados como argnamen (ver TNFPROBE (3TNF)) seguido de dos puntos y el valor de ese argumento. El formato del valor depende de su tipo. Los argumentos opacos se imprimen en hexadecimal. Todos los demás enteros se imprimen en decimal. Las cadenas se imprimen entre comillas dobles y los registros definidos por el usuario se incluyen entre llaves. El primer campo de un registro definido por el usuario indica su tipo TNF (véase TNFDECLARERECORD (3TNF)). El resto de los campos son los miembros del registro. A - en cualquier columna indica que no hay datos para esa columna en particular. Ejemplo 2 Para realizar una conversión sin formato de un archivo en ASCII Para realizar una conversión sin procesar del archivo / tmp / trace-4000 en ASCII, utilice: La salida será similar a la siguiente: El primer número es el desplazamiento del archivo del registro. El registro está encerrado entre llaves. La primera columna de un registro es el nombre de la ranura (para los registros cuyos campos no tienen nombres, es el nombre de tipo). La segunda columna del registro es el valor de esa ranura si es un escalar (sólo los escalares que son de tipo tnfopaco se imprimen en hexadecimal) o el desplazamiento del registro si es una referencia a otro registro. La tercera columna de un registro es opcional. No existe para las ranuras escalares de registros. Si existe, la tercera columna es un nombre de tipo con o sin paréntesis o una cadena entre comillas dobles. Los nombres sin adornos indican una referencia al registro metatag nombrado (es decir, una referencia a un registro con ese nombre en el campo tnfname). Los nombres de tipo entre corchetes indican una referencia a un registro que es una instancia de ese tipo (es decir, una referencia a un registro con ese nombre en el campo tnftag). El contenido de las cadenas se imprime entre comillas dobles en el sitio de referencia. Los registros que son matrices tienen sus elementos de matrices siguiendo las ranuras de encabezado y están numerados 0, 1, 2, etc., excepto las cadenas en las que la cadena está escrita como la ranura chars (pseudo-name). Los registros que son eventos (generados por TNFPROBE (3TNF)) tendrán un nombre de ranura de tnftagarg como su segundo campo que es una referencia al registro de programación. Los registros de programación describen más información sobre el evento como el id de proceso, id de proceso y la base de tiempo. El timedelta de un evento se puede agregar a la base de tiempo del registro de programación que el evento hace referencia, para dar un tiempo absoluto. Este tiempo se expresa como nanosegundos desde algún tiempo arbitrario en el pasado (ver gethrtime (3C)). Ejemplo 3 Imprimir argumentos sin firmar TNF en hexadecimal Para imprimir argumentos sin firmar TNF en hexadecimal para el archivo / tmp / trace-2192. Utilización: Paquete de desarrollo de plano de datos (DPDK): Introducción Antecedentes El procesamiento de paquetes en la ruta rápida implica buscar patrones de bits y decidir la velocidad de línea en una acción basada en los patrones de bits presentes. Estos patrones de bits podrían pertenecer a uno de los múltiples encabezados presentes en un paquete, que podría residir en una de varias capas, por ejemplo, Ethernet, VLAN, IP, MPLS o TCP / UDP. Las acciones determinadas por estos patrones de bits pueden variar desde simplemente reenviarlos a otro puerto hasta realizar reescrituras complejas que implican asignar un encabezado de paquetes de un conjunto de protocolos a otro. Añádase a esto las funciones de gestión y vigilancia del tráfico, firewalls, VPN, etc., y la complejidad de las operaciones que se realizarán por paquete explote. Para poner la expectativa de la vía rápida en perspectiva, a una velocidad de línea de 10 Gig y tamaño de paquete de 84 bytes, un procesador tiene que procesar 14,88 millones de paquetes por segundo. El hardware de propósito general no era lo suficientemente rápido para procesar paquetes a este ritmo. Por lo tanto ASICs y NPUs han estado realizando el proceso de ruta de datos en la mayoría de los sistemas de red de producción. El problema obvio con este enfoque es la inflexibilidad, el costo, los ciclos de desarrollo largos y la dependencia de un proveedor en particular. Sin embargo, con la disponibilidad de CPUs más rápidas y más baratas y aceleraciones de software como el Kit de Desarrollo de Plano de Datos (DPDK). Es posible mover estas funciones sobre el hardware de la mercancía. ¿Qué es el kit de desarrollo de planos de datos? El DPDK es un conjunto de bibliotecas y controladores para el procesamiento rápido de paquetes. Puede convertir un procesador de uso general en su propio paquete de reenviador sin tener que utilizar costosos switches personalizados y enrutadores. El DPDK funciona sobre todo en tierra de usuario de Linux, aunque un puerto de FreeBSD está disponible para un subconjunto de características de DPDK. DPDK es un proyecto BSD de código abierto. Los parches y mejoras más recientes, proporcionados por la comunidad, están disponibles en la sucursal principal. DPDK no es una pila de red y no proporciona funciones tales como reenvío de capa 3, IPsec, firewall, etc. Dentro del árbol, sin embargo, se incluyen varios ejemplos de aplicación para ayudar a desarrollar tales características. Algunos servicios y apoyo son proporcionados por varias compañías. Incluyendo Intel. Recibir y enviar paquetes dentro del número mínimo de ciclos de CPU (normalmente menos de 80 ciclos) Desarrollar algoritmos rápidos de captura de paquetes (tcpdump-like) Ejecutar pilas de ruta rápida de terceros Algunas funciones de procesamiento de paquetes han sido comparadas hasta cientos de millones de fotogramas por Segundo, utilizando paquetes de 64 bytes con una NIC PCIe. Uso del kit de desarrollo de plano de datos Para comenzar con DPDK, siga estos pasos: Si no tiene Linux, descargue la caja virtual e instale una máquina Linux. Descargue el último DPDK usando uno de los comandos dependiendo del kernel Linux que tenga. Wget dpdk. org/browse/dpdk/snapshot/dpdk-2.1.0.tar. gz O sudo apt-get dpdk. org/browse/dpdk/snapshot/dpdk-2.1.0.tar. gz O yum install dpdk. org /browse/dpdk/snapshot/dpdk-2.1.0.tar. gz Descomprima el archivo zip DPDK. Tar zxvf dpdk-2.1.0.tar. gz Explora el código fuente. Cd dpdk-2.1.0 Para ver lo que hay en los directorios, vea el video Capítulo 1: Estructura de directorios DPDK y secuencias de comandos y Configuración de DPDK en el curso de introducción DPDK de Networking Builder University. Compruebe las configuraciones de la CPU. Cd tools ./cpulayout. pystacknde01 tools ./dpdknicbind. py --status Dispositivos de red que usan un controlador compatible con DPDK 0000: 03: 00.0 Conexión Ethernet X552 / X557-AT 10GBASE-T drvigbuio no utilizado 0000: 03: 00.1 Conexión Ethernet X552 / X557 - AT 10GBASE-T drvigbuio no utilizados Dispositivos de red con controlador de núcleo 0000: 05: 00.0 Controlador Ethernet XL710 para 40GbE QSFP ifens2f0 drvi40e sin usar 0000: 05: 00.1 Controlador Ethernet XL710 para 40GbE QSFP ifens2f1 drvi40e sin usar 0000: 07: 00.0 I350 Gigabit Conexión de red ifeno1 Drvigb unusedigbuio Activo 0000: 07: 00.1 I350 Gigabit Conexión de red ifeno2 drvigb unusedigbuio Otros dispositivos de red ltnonegt Configurar el DPDK: setup. sh es una utilidad útil que le guiará a través del proceso de compilar DPDK y configurar su sistema. Para ejecutarlo necesita ser la raíz, y desde el directorio de herramientas simplemente escriba: La salida de ejemplo se ve así: ------------------------- --------------------------------- Paso 2: Configuración del entorno linuxapp ----------- ----------------------------------------------- 13 Insertar IGB UIO 14 Insertar módulo VFIO 15 Insertar módulo KNI 16 Configurar asignaciones enormes para sistemas no NUMA 17 Configurar asignaciones enormes páginas para sistemas NUMA 18 Visualizar ajustes actuales de dispositivos Ethernet 19 Vincular el dispositivo Ethernet al módulo UIO IGB 20 Vincular el dispositivo Ethernet al módulo VFIO 21 Configurar VFIO permisos ------------------------------------------------- --------- Paso 3: Ejecutar la aplicación de prueba para el entorno linuxapp -------------------------------- -------------------------- 22 Ejecutar la aplicación de prueba (RTETARGET / app / test) 23 Ejecutar la aplicación testpmd en modo interactivo (RTETARGET / app / testpmd ) 31 Opción de salida de script: Debe seleccionar una opción y configurarla. 1. El paso 1 requiere que seleccione la configuración del entorno DPDK. Puede seleccionar x8664-nativo-linuxapp-gcc que pasa a ser la opción 10. 2. En el paso 2, debe configurar el entorno de la aplicación Linux. La opción 13. carga el módulo UIO IGB más reciente y compila el último controlador UIO IGB. IGB UIO es un módulo de kernel DPDK que se ocupa de la enumeración PCI y maneja las interrupciones de estado de los enlaces en el modo de usuario, en lugar de ser manejado por el kernel. También es necesario configurar enormes asignaciones de páginas, p. 2M para NUMA, opción 17. La opción 18 mostrará los ajustes actuales de Ethernet, como en el paso 6 anterior. Utilizando la opción 19, desvincule la tarjeta de red deseada del controlador del kernel de Linux y encuadécela al módulo UIO IGB instalado mediante la opción 13. Precaución . No vincule la tarjeta de red utilizada para la conectividad externa a DPDK, ya que se perderá la conexión con su dispositivo. Para obtener más información sobre la configuración, consulte el capítulo Capítulo 2: Configuración de DPDK. Que es parte del curso de Introducción DPDK de Network Builder Universitys. Compile una aplicación de ejemplo l2fwd. Se trata de una aplicación de reenvío de capa 2 que envía paquetes basados ​​en direcciones MAC y no basados ​​en direcciones IP. Cd ejemplos cd l2fwd export RTESDKltdpdk install directorygt make Ejecuta tu aplicación de ejemplo. Usage. / Build / l2fwd - c COREMISK-l CORELIST - n CANALES options / build / l2fwd c 0x3 n 4 - p 0x3 - c (máscara hexadecimal de bits de los núcleos que desea ejecutar uno) p. C Ox3 significa que se ejecutan en ambos núcleos porque binario 11 0x3 - n (número de canales de memoria) p. N 4 significa que se ejecutan en los cuatro canales disponibles en el procesador Intel Xeon - p (máscara de puerto) - p 0x3 significa que se ejecutan en ambos puertos que están vinculados a dpdk porque binario 11 0x3 Para el propósito de nuestra prueba esta aplicación de ejemplo envía cualquier paquete que viene Puerto 0 al puerto 1, y viceversa. Después de ejecutarlo, entra en el bucle de sondeo en el que realiza sondeos en ambos puertos y actualiza estadísticas tales como paquetes recibidos y enviados cada 10 segundos (visto en la última captura de pantalla abajo). La primera captura de pantalla muestra EAL (Environment Abstraction Layer) que pasa por todos los núcleos lógicos que se asignan a los núcleos físicos. La segunda captura de pantalla muestra los dispositivos PCI / tarjetas de red que están conectados a DPDK (controlador UIO IGB, paso 7 - gt 2 anterior) y, por lo tanto, utilizando el controlador rteixgbepmd que es controlador de modo polled DPDK y aquellos que no están siendo gestionados por él. La captura de pantalla 3 muestra un núcleo lógico dedicado a cada puerto físico. Para obtener más información sobre las opciones de ejecución, consulte el capítulo Capítulo 3: Compilación y ejecución de una aplicación de ejemplo en el curso de introducción DPDK de Universitys Builder University. La aplicación de ejemplo muestra la funcionalidad básica de reenvío de Capa 2. Si desea comparar DPDK y ver cómo se realiza, consulte el curso Intel Network Builder University usando DPPD PROX. Donde Luc Provoost, gerente de ingeniería de Intels Network Platforms Group, compara una función de red virtual con el DPPD (Data Plane Performance Demonstrator) Prox para ayudar a los desarrolladores de software a entender y utilizar estas herramientas. Resumen DPDK es un acelerador de software que se ejecuta en el espacio de usuario, omitiendo el kernel de Linux y proporcionando acceso a NICs. CPUs y memoria para una aplicación de procesamiento de paquetes. En este artículo guiamos al usuario paso a paso sobre cómo descargar DPDK 2.1.0 en la plataforma Linux, compilarlo, configurarlo y ejecutar una aplicación de ejemplo. Para entender los términos de referencia utilizados en los vídeos anteriores y para obtener detalles sobre las características y programas de DPDK, consulte lo siguiente: DPDK 101. En este curso de Intel Network Builders University, Andrew Duignan, ingeniero de aplicaciones de plataformas de Intel, ofrece una visión general del DPDK (basado en la versión 2.1), que abarca licencias, conceptos de procesamiento de paquetes, bibliotecas de componentes DPDK, problemas de memoria de arquitectura Intel y configuración de memoria DPDK . DPDK 201. En este curso de Intel Network Builders University, MJay, ingeniero de plataforma líder de Intel, ofrece una visión general y filosofía de diseño del DPDK (basado en la versión 2.1), las características clave y el razonamiento detrás de esas características clave, desarrollado. Guía de programadores DPDK de DPDK. org. Tiene una pregunta El SDN / NFV Forum es el lugar perfecto para hacer. Sobre el autor Sujata Tibrewala es un Networking Community Manager y Desarrollador Evangelista en Intel. Ha trabajado en el desarrollo de software de red en la industria y se está divirtiendo hoy trabajando con tecnologías que optimizan el hardware de las mercancías para funciones de Networking usando SDN y NFV.

Comments