1/* 2 * Copyright (c) 2007, 2008, 2009, 2010, 2011 ETH Zurich. 3 * All rights reserved. 4 * 5 * This file is distributed under the terms in the attached LICENSE file. 6 * If you do not find this file, copies can be found by writing to: 7 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. 8 */ 9 10interface net_ports "Interface for port management" { 11 alias bufid uint64; 12 alias ipv4addr uint32; 13 alias qid uint64; 14 alias appid uint64; 15 typedef enum {PORT_TCP, PORT_UDP} port_type; 16 17 /* following one should not be used */ 18 rpc get_ip_info(out ipv4addr ip, 19 out ipv4addr gw, 20 out ipv4addr mask); 21 22 23 rpc get_mac_address(out uint64 hwaddr); 24 25 26 rpc get_port(in port_type type, 27 in bufid buffer_id_rx, 28 in bufid buffer_id_tx, 29 in appid appid, 30 in qid queueid, 31 out errval err, 32 out uint16 port_no); 33 34 rpc bind_port(in port_type type, 35 in uint16 port_no, 36 in bufid buffer_id_rx, 37 in bufid buffer_id_tx, 38 in appid appid, 39 in qid queueid, 40 out errval err); 41 42 rpc close_port(in port_type type, 43 in uint16 port_no, 44 in appid appid, 45 in qid queueid, 46 out errval err); 47 48/* 49 rpc redirect(in port_type port, 50 in ipv4addr local_ip, 51 in uint16 local_port, 52 in ipv4addr remote_ip, 53 in uint16 remote_port, 54 in bufid buffer_id_rx, 55 in bufid buffer_id_tx, 56 in uint64 queueid, 57 out errval err); 58 59 rpc redirect_pause(in port_type port, 60 in ipv4addr local_ip, 61 in uint16 local_port, 62 in ipv4addr remote_ip, 63 in uint16 remote_port, 64 in bufid buffer_id_rx, 65 in bufid buffer_id_tx, 66 in uint64 queueid, 67 out errval err); 68*/ 69}; 70 71