ethernet.c File Reference

Ethernet over EtherCAT (EoE). More...

Go to the source code of this file.

Defines

#define EOE_DEBUG_LEVEL   1
 Defines the debug level of EoE processing.
#define EC_EOE_TX_QUEUE_SIZE   100
 Size of the EoE tx queue.
#define EC_EOE_TRIES   100
 Number of tries.

Functions

void ec_eoe_flush (ec_eoe_t *eoe)
 Empties the transmit queue.
void ec_eoe_state_rx_start (ec_eoe_t *eoe)
 State: RX_START.
void ec_eoe_state_rx_check (ec_eoe_t *eoe)
 State: RX_CHECK.
void ec_eoe_state_rx_fetch (ec_eoe_t *eoe)
 State: RX_FETCH.
void ec_eoe_state_tx_start (ec_eoe_t *eoe)
 State: TX START.
void ec_eoe_state_tx_sent (ec_eoe_t *eoe)
 State: TX SENT.
int ec_eoedev_open (struct net_device *dev)
 Opens the virtual network device.
int ec_eoedev_stop (struct net_device *dev)
 Stops the virtual network device.
int ec_eoedev_tx (struct sk_buff *skb,struct net_device *dev)
 Transmits data via the virtual network device.
struct net_device_stats * ec_eoedev_stats (struct net_device *dev)
 Gets statistics about the virtual network device.
int ec_eoe_init (ec_eoe_t *eoe, ec_slave_t *slave)
 EoE constructor.
void ec_eoe_clear (ec_eoe_t *eoe)
 EoE destructor.
int ec_eoe_send (ec_eoe_t *eoe)
 Sends a frame or the next fragment.
void ec_eoe_run (ec_eoe_t *eoe)
 Runs the EoE state machine.
void ec_eoe_queue (ec_eoe_t *eoe)
 Queues the datagram, if necessary.
int ec_eoe_is_open (const ec_eoe_t *eoe)
 Returns the state of the device.
int ec_eoe_is_idle (const ec_eoe_t *eoe)
 Returns the idle state.

Variables

static struct net_device_ops ec_eoedev_ops
 Device operations for EoE interfaces.


Detailed Description

Ethernet over EtherCAT (EoE).

Definition in file ethernet.c.


Define Documentation

#define EOE_DEBUG_LEVEL   1

Defines the debug level of EoE processing.

0 = No debug messages. 1 = Output warnings. 2 = Output actions. 3 = Output actions and frame data.

Definition at line 56 of file ethernet.c.


Function Documentation

void ec_eoe_flush ( ec_eoe_t eoe  ) 

Empties the transmit queue.

Parameters:
eoe  EoE handler

Definition at line 238 of file ethernet.c.

void ec_eoe_state_rx_start ( ec_eoe_t eoe  ) 

State: RX_START.

Starts a new receiving sequence by queueing a datagram that checks the slave's mailbox for a new EoE datagram.

Todo:
Use both devices.
Parameters:
eoe  EoE handler

Definition at line 400 of file ethernet.c.

void ec_eoe_state_rx_check ( ec_eoe_t eoe  ) 

State: RX_CHECK.

Processes the checking datagram sent in RX_START and issues a receive datagram, if new data is available.

Parameters:
eoe  EoE handler

Definition at line 421 of file ethernet.c.

void ec_eoe_state_rx_fetch ( ec_eoe_t eoe  ) 

State: RX_FETCH.

Checks if the requested data of RX_CHECK was received and processes the EoE datagram.

Parameters:
eoe  EoE handler

Definition at line 452 of file ethernet.c.

void ec_eoe_state_tx_start ( ec_eoe_t eoe  ) 

State: TX START.

Starts a new transmit sequence. If no data is available, a new receive sequence is started instead.

Todo:
Use both devices.
Parameters:
eoe  EoE handler

Definition at line 629 of file ethernet.c.

void ec_eoe_state_tx_sent ( ec_eoe_t eoe  ) 

State: TX SENT.

Checks is the previous transmit datagram succeded and sends the next fragment, if necessary.

Parameters:
eoe  EoE handler

Definition at line 704 of file ethernet.c.

int ec_eoedev_open ( struct net_device *  dev  ) 

Opens the virtual network device.

Returns:
Always zero (success).
Parameters:
dev  EoE net_device

Definition at line 770 of file ethernet.c.

int ec_eoedev_stop ( struct net_device *  dev  ) 

Stops the virtual network device.

Returns:
Always zero (success).
Parameters:
dev  EoE net_device

Definition at line 792 of file ethernet.c.

int ec_eoedev_tx ( struct sk_buff *  skb,
struct net_device *  dev 
)

Transmits data via the virtual network device.

Returns:
Zero on success, non-zero on failure.
Parameters:
skb  transmit socket buffer
dev  EoE net_device

Definition at line 814 of file ethernet.c.

struct net_device_stats * ec_eoedev_stats ( struct net_device *  dev  )  [read]

Gets statistics about the virtual network device.

Returns:
Statistics.
Parameters:
dev  EoE net_device

Definition at line 866 of file ethernet.c.

int ec_eoe_init ( ec_eoe_t eoe,
ec_slave_t slave 
)

EoE constructor.

Initializes the EoE handler, creates a net_device and registers it.

Returns:
Zero on success, otherwise a negative error code.
Parameters:
eoe  EoE handler
slave  EtherCAT slave

Definition at line 104 of file ethernet.c.

void ec_eoe_clear ( ec_eoe_t eoe  ) 

EoE destructor.

Unregisteres the net_device and frees allocated memory.

Parameters:
eoe  EoE handler

Definition at line 214 of file ethernet.c.

int ec_eoe_send ( ec_eoe_t eoe  ) 

Sends a frame or the next fragment.

Returns:
Zero on success, otherwise a negative error code.
Parameters:
eoe  EoE handler

Definition at line 260 of file ethernet.c.

void ec_eoe_run ( ec_eoe_t eoe  ) 

Runs the EoE state machine.

Parameters:
eoe  EoE handler

Definition at line 330 of file ethernet.c.

void ec_eoe_queue ( ec_eoe_t eoe  ) 

Queues the datagram, if necessary.

Parameters:
eoe  EoE handler

Definition at line 358 of file ethernet.c.

int ec_eoe_is_open ( const ec_eoe_t eoe  ) 

Returns the state of the device.

Returns:
1 if the device is "up", 0 if it is "down"
Parameters:
eoe  EoE handler

Definition at line 372 of file ethernet.c.

int ec_eoe_is_idle ( const ec_eoe_t eoe  ) 

Returns the idle state.

Return values:
1 The device is idle.
0 The device is busy.
Parameters:
eoe  EoE handler

Definition at line 384 of file ethernet.c.


Variable Documentation

struct net_device_ops ec_eoedev_ops [static]

Initial value:

 {
    .ndo_open = ec_eoedev_open,
    .ndo_stop = ec_eoedev_stop,
    .ndo_start_xmit = ec_eoedev_tx,
    .ndo_get_stats = ec_eoedev_stats,
}
Device operations for EoE interfaces.

Definition at line 88 of file ethernet.c.


Generated on Mon Jun 20 09:31:30 2016 for IgH EtherCAT Master by  doxygen 1.5.6