Пример #1
0
/*!	\brief Allows private extensions.
	
	If you override this method you must call the parent's method for unknown ops.
*/
status_t
KPPPDevice::Control(uint32 op, void *data, size_t length)
{
	switch (op) {
		case PPPC_GET_DEVICE_INFO:
		{
			if (length < sizeof(ppp_device_info_t) || !data)
				return B_NO_MEMORY;

			ppp_device_info *info = (ppp_device_info*) data;
			memset(info, 0, sizeof(ppp_device_info_t));
			if (Name())
				strncpy(info->name, Name(), PPP_HANDLER_NAME_LENGTH_LIMIT);
			info->MTU = MTU();
			info->inputTransferRate = InputTransferRate();
			info->outputTransferRate = OutputTransferRate();
			info->outputBytesCount = CountOutputBytes();
			info->isUp = IsUp();
			break;
		}

		default:
			return B_BAD_VALUE;
	}

	return B_OK;
}
Пример #2
0
 uint16_t max_packet_len() const noexcept {
   return sizeof(net::ethernet::VLAN_header) + MTU();
 }
Пример #3
0
 constexpr uint16_t bufsize() const {
   return MTU() +
     sizeof(net::Ethernet::header) + sizeof(net::Ethernet::trailer) +
     sizeof(virtio_net_hdr); }