/*        lac.h      2.01.000 11JUN99 16:47  */
#ifndef   lac_h__
#define   lac_h__

#include "lac_types.h"

/******************************************************************************
 * LAC : LINK AGGREGATION CONTROL PROTOCOL : COMPONENT INTERFACE
 ******************************************************************************
 */
extern void lac_rx(  Lac_port *port, Lac_pdu *pdu);

extern void lac_tick(Lac_port *port);

/******************************************************************************
 * LAC : LINK AGGREGATION CONTROL PROTOCOL : MANAGEMENT
 ******************************************************************************
 */
extern void lac_init_system( Lac_system *system);

extern void lac_init_port(   Lac_system *system, Port_no port_no,
                             Boolean     lacp_enabled);

extern void lac_enable_port( Lac_system *system, Port_no port_no);

extern void lac_disable_port(Lac_system *system, Port_no port_no);

extern void lac_set_key(     Lac_system *system, Port_no port_no, Port_no key);

/******************************************************************************
 * LAC : LINK AGGREGATION CONTROL PROTOCOL : CREATE & DESTROY SYSTEM & PORTS
 ******************************************************************************
 */
extern Boolean lac_create_system(System_id system_id, void **system);

extern Boolean lac_create_port(Lac_system *system, Port_no port_no,
                               Lac_port  **port);

extern void lac_destroy_port(  Lac_system *system, Port_no port_no);

extern void lac_destroy_system(Lac_system *system);

#endif /* lac_h__ */
