---
title: ifnet_input
framework: Kernel
role: symbol
role_heading: Function
platforms: [macOS 10.4+]
path: kernel/1525087-ifnet_input
---

# ifnet_input

## Declaration

```occ
errno_t ifnet_input(ifnet_t interface, mbuf_t first_packet, const struct ifnet_stat_increment_param *stats);
```

## Parameters

- `interface`: The interface.
- `first_packet`: The first packet in a chain of packets.
- `stats`: Counts to be integrated in to the stats. The interface statistics will be incremented by the amounts specified in stats. This parameter may be NULL.

## Return Value

Return Value 0 on success otherwise the errno error.

## Discussion

Discussion Inputs packets from the interface. The interface's demux will be called to determine the protocol. Once the protocol is determined, the interface filters and protocol filters will be called. From there, the packet will be passed to the registered protocol. If there is an error, the mbuf chain will be freed.

## See Also

### Network Kernel Extensions

- [sock_accept](kernel/1396149-sock_accept.md)
- [sock_bind](kernel/1396145-sock_bind.md)
- [sock_close](kernel/1396134-sock_close.md)
- [sock_connect](kernel/1396120-sock_connect.md)
- [sock_getpeername](kernel/1396137-sock_getpeername.md)
- [sock_getsockname](kernel/1396141-sock_getsockname.md)
- [sock_getsockopt](kernel/1396136-sock_getsockopt.md)
- [sock_gettype](kernel/1396147-sock_gettype.md)
- [sock_inject_data_in](kernel/1433192-sock_inject_data_in.md)
- [sock_inject_data_out](kernel/1433162-sock_inject_data_out.md)
- [sock_ioctl](kernel/1396118-sock_ioctl.md)
- [sock_isconnected](kernel/1396130-sock_isconnected.md)
- [sock_isnonblocking](kernel/1396116-sock_isnonblocking.md)
- [sock_listen](kernel/1396139-sock_listen.md)
- [sock_receive](kernel/1396126-sock_receive.md)
- [sock_receivembuf](kernel/1396114-sock_receivembuf.md)
- [sock_send](kernel/1396143-sock_send.md)
- [sock_sendmbuf](kernel/1396128-sock_sendmbuf.md)
- [sock_setpriv](kernel/1396124-sock_setpriv.md)
- [sock_setsockopt](kernel/1396148-sock_setsockopt.md)
- [sock_shutdown](kernel/1396150-sock_shutdown.md)
- [sock_socket](kernel/1396122-sock_socket.md)
- [sockopt_copyin](kernel/1433166-sockopt_copyin.md)
- [sockopt_copyout](kernel/1433176-sockopt_copyout.md)
- [sockopt_direction](kernel/1433253-sockopt_direction.md)
- [sockopt_level](kernel/1433193-sockopt_level.md)
- [sockopt_name](kernel/1433249-sockopt_name.md)
- [sockopt_valsize](kernel/1433272-sockopt_valsize.md)
- [ifaddr_address](kernel/1525073-ifaddr_address.md)
- [ifaddr_address_family](kernel/1524915-ifaddr_address_family.md)
- [ifaddr_dstaddress](kernel/1525058-ifaddr_dstaddress.md)
- [ifaddr_findbestforaddr](kernel/1525009-ifaddr_findbestforaddr.md)
- [ifaddr_ifnet](kernel/1524949-ifaddr_ifnet.md)
- [ifaddr_netmask](kernel/1525132-ifaddr_netmask.md)
- [ifaddr_reference](kernel/1525060-ifaddr_reference.md)
- [ifaddr_release](kernel/1524928-ifaddr_release.md)
- [ifaddr_withaddr](kernel/1524859-ifaddr_withaddr.md)
- [ifaddr_withdstaddr](kernel/1525107-ifaddr_withdstaddr.md)
- [ifaddr_withnet](kernel/1524842-ifaddr_withnet.md)
- [ifaddr_withroute](kernel/1524963-ifaddr_withroute.md)
- [iflt_attach](kernel/1589956-iflt_attach.md)
- [iflt_detach](kernel/1589950-iflt_detach.md)
- [ifmaddr_address](kernel/1524853-ifmaddr_address.md)
- [ifmaddr_ifnet](kernel/1525101-ifmaddr_ifnet.md)
- [ifmaddr_lladdress](kernel/1525091-ifmaddr_lladdress.md)
- [ifmaddr_reference](kernel/1524890-ifmaddr_reference.md)
- [ifmaddr_release](kernel/1525024-ifmaddr_release.md)
- [ifnet_add_multicast](kernel/1524976-ifnet_add_multicast.md)
- [ifnet_addrlen](kernel/1524855-ifnet_addrlen.md)
- [ifnet_allocate](kernel/1525028-ifnet_allocate.md)
- [ifnet_attach](kernel/1524922-ifnet_attach.md)
- [ifnet_attach_protocol](kernel/1525004-ifnet_attach_protocol.md)
- [ifnet_attach_protocol_v2](kernel/1525131-ifnet_attach_protocol_v2.md)
- [ifnet_baudrate](kernel/1524866-ifnet_baudrate.md)
- [ifnet_capabilities_enabled](kernel/1525016-ifnet_capabilities_enabled.md)
- [ifnet_capabilities_supported](kernel/1524931-ifnet_capabilities_supported.md)
- [ifnet_detach](kernel/1524903-ifnet_detach.md)
- [ifnet_detach_protocol](kernel/1525007-ifnet_detach_protocol.md)
- [ifnet_event](kernel/1524986-ifnet_event.md)
- [ifnet_family](kernel/1524921-ifnet_family.md)
- [ifnet_find_by_name](kernel/1525072-ifnet_find_by_name.md)
- [ifnet_flags](kernel/1525111-ifnet_flags.md)
- [ifnet_free_address_list](kernel/1524991-ifnet_free_address_list.md)
- [ifnet_free_multicast_list](kernel/1524898-ifnet_free_multicast_list.md)
- [ifnet_get_address_list](kernel/1525146-ifnet_get_address_list.md)
- [ifnet_get_address_list_family](kernel/1525142-ifnet_get_address_list_family.md)
- [ifnet_get_link_mib_data](kernel/1524988-ifnet_get_link_mib_data.md)
- [ifnet_get_link_mib_data_length](kernel/1524864-ifnet_get_link_mib_data_length.md)
- [ifnet_get_multicast_list](kernel/1525020-ifnet_get_multicast_list.md)
- [ifnet_get_tso_mtu](kernel/1524965-ifnet_get_tso_mtu.md)
- [ifnet_get_wake_flags](kernel/1524907-ifnet_get_wake_flags.md)
- [ifnet_hdrlen](kernel/1524895-ifnet_hdrlen.md)
- [ifnet_index](kernel/1525041-ifnet_index.md)
- [ifnet_interface_family_find](kernel/1524844-ifnet_interface_family_find.md)
- [ifnet_ioctl](kernel/1525082-ifnet_ioctl.md)
- [ifnet_lastchange](kernel/1525140-ifnet_lastchange.md)
- [ifnet_list_free](kernel/1524868-ifnet_list_free.md)
- [ifnet_list_get](kernel/1524913-ifnet_list_get.md)
- [ifnet_lladdr_copy_bytes](kernel/1525069-ifnet_lladdr_copy_bytes.md)
- [ifnet_llbroadcast_copy_bytes](kernel/1525030-ifnet_llbroadcast_copy_bytes.md)
- [ifnet_metric](kernel/1524964-ifnet_metric.md)
- [ifnet_mtu](kernel/1524959-ifnet_mtu.md)
- [ifnet_name](kernel/1524885-ifnet_name.md)
- [ifnet_offload](kernel/1524854-ifnet_offload.md)
- [ifnet_output](kernel/1525046-ifnet_output.md)
- [ifnet_output_raw](kernel/1525049-ifnet_output_raw.md)
- [ifnet_reference](kernel/1524857-ifnet_reference.md)
- [ifnet_release](kernel/1525052-ifnet_release.md)
- [ifnet_remove_multicast](kernel/1524982-ifnet_remove_multicast.md)
- [ifnet_resolve_multicast](kernel/1525080-ifnet_resolve_multicast.md)
- [ifnet_set_addrlen](kernel/1524861-ifnet_set_addrlen.md)
- [ifnet_set_baudrate](kernel/1525090-ifnet_set_baudrate.md)
- [ifnet_set_capabilities_enabled](kernel/1524938-ifnet_set_capabilities_enabled.md)
- [ifnet_set_capabilities_supported](kernel/1525144-ifnet_set_capabilities_supported.md)
- [ifnet_set_flags](kernel/1524996-ifnet_set_flags.md)
- [ifnet_set_hdrlen](kernel/1525097-ifnet_set_hdrlen.md)
- [ifnet_set_link_mib_data](kernel/1525120-ifnet_set_link_mib_data.md)
- [ifnet_set_lladdr](kernel/1524891-ifnet_set_lladdr.md)
- [ifnet_set_metric](kernel/1524932-ifnet_set_metric.md)
- [ifnet_set_mtu](kernel/1524919-ifnet_set_mtu.md)
- [ifnet_set_offload](kernel/1524961-ifnet_set_offload.md)
- [ifnet_set_promiscuous](kernel/1524973-ifnet_set_promiscuous.md)
- [ifnet_set_stat](kernel/1524994-ifnet_set_stat.md)
- [ifnet_set_tso_mtu](kernel/1525098-ifnet_set_tso_mtu.md)
- [ifnet_set_wake_flags](kernel/1525070-ifnet_set_wake_flags.md)
- [ifnet_softc](kernel/1524952-ifnet_softc.md)
- [ifnet_stat](kernel/1525068-ifnet_stat.md)
- [ifnet_stat_increment](kernel/1525065-ifnet_stat_increment.md)
- [ifnet_stat_increment_in](kernel/1525002-ifnet_stat_increment_in.md)
- [ifnet_stat_increment_out](kernel/1525085-ifnet_stat_increment_out.md)
- [ifnet_touch_lastchange](kernel/1524957-ifnet_touch_lastchange.md)
- [ifnet_type](kernel/1524954-ifnet_type.md)
- [ifnet_unit](kernel/1525055-ifnet_unit.md)
