Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3990 → Rev 3991

/branches/network/uspace/srv/net/netif/device.h
77,6 → 77,15
NETIF_CARRIER_LOST
};
 
/** \todo
*/
#define NIFF_UP ( 1 << 0 )
#define NIFF_NOARP ( 1 << 1 )
#define NIFF_LOOPBACK ( 1 << 2 )
#define NIFF_BROADCAST ( 1 << 3 )
#define NIFF_PROMISC ( 1 << 4 )
#define NIFF_MULTICAST ( 1 << 5 )
 
/** Device usage statistics.
* Based on linux_kernel/include/linux/netdevice.h.
*/
/branches/network/uspace/srv/net/netif/lo/lo.c
163,27 → 163,20
 
device_ref device;
size_t length;
packet_t received;
packet_t next;
 
ERROR_PROPAGATE( find_device( device_id, & device ));
if( device->state != NETIF_ACTIVE ) return EPERM;
++ device->stats.tx_packets;
++ device->stats.rx_packets;
length = packet_get_data_length( packet );
device->stats.tx_bytes += length;
device->stats.rx_bytes += length;
received = packet_copy( netif_globals.networking_phone, SERVICE_LO, packet );
packet_release( netif_globals.networking_phone, packet_get_id( packet ));
if( ! received ){
++ device->stats.rx_dropped;
return EOK;
}
nil_message( device, NET_NIL_RECEIVED, packet_get_id( received ), NULL );
// message = async_send_1( device->nil_phone, NET_NIL_RECEIVED, ( device_id ), & answer );
// if( ERROR_OCCURRED( packet_send( received, device->nil_phone ))){
// ++ device->stats.rx_dropped;
// }
// if( result != EOK ) ++ device->stats.rx_dropped;
do{
++ device->stats.tx_packets;
++ device->stats.rx_packets;
length = packet_get_data_length( packet );
device->stats.tx_bytes += length;
device->stats.rx_bytes += length;
next = pq_detach( packet );
nil_message( device, NET_NIL_RECEIVED, packet_get_id( packet ), PACKET_SELF );
packet = next;
}while( packet );
return EOK;
}