ieee_802_15_4_receiver ieee_802_3_mac_v3
API Reference Manual  /  4 Model-to-Model Interfaces  / 

ieee_802_3_mac

Description
#define IEEE_802_3_MAC_INTERFACE "ieee_802_3_mac"
SIM_INTERFACE(ieee_802_3_mac) {
        int (*receive_frame)(conf_object_t *obj, int phy,
                             dbuffer_t *buf, int crc_ok);
        void (*tx_bandwidth_available)(conf_object_t *obj, int phy);
        void (*link_status_changed)(conf_object_t *obj, int phy,
                                    ieee_802_3_link_status_t status);
};

typedef enum {
        IEEE_link_unconnected,
        IEEE_link_down,
        IEEE_link_up
} ieee_802_3_link_status_t;

Deprecated; use ieee_802_3_mac_v3 instead.

Interface that should be implemented by 802.3 media access control layers.

The receive_frame function is called when a frame has been received by the phy. The frame is passed as a dbuffer_t that may not be modified without cloning it first. The return value have no meaning, callers should ignore it, and new implementations should return 0.

The tx_bandwidth_available is called by the PHY when a previous call to send_frame or check_tx_bandwidth in the ieee_802_3_phy interface have returned no bandwidth available.

link_status_changed is called when the phy detects a change of the link status.

The phy parameter is a number that identifies this particular PHY, in configurations with several PHYs connected to the same MAC.

Execution Context
Cell Context for all methods.

ieee_802_15_4_receiver ieee_802_3_mac_v3