00001
00002
00003
00004
00005
00006
00007 #ifndef __NMF_EVENT_H
00008 #define __NMF_EVENT_H
00009
00010 struct nmf_event_hdr {
00011
00012 u_int client_id;
00013 u_int slot_id;
00014 u_int cb_context0;
00015 u_int cb_context1;
00016 };
00017 typedef struct nmf_event_hdr nmf_event_hdr;
00018
00019 struct nmf_event_hb {
00020 struct nmf_event_hdr h;
00021 u_int time;
00022 };
00023 typedef struct nmf_event_hb nmf_event_hb;
00024
00025 enum nmf_event_type {
00026 NMF_EVENT_HDR,
00027 NMF_EVENT_HB,
00028 NMF_EVENT_SWITCH_ADD,
00029 NMF_EVENT_SWITCH_UPDATE,
00030 NMF_EVENT_SWITCH_REM,
00031 NMF_EVENT_ETHADDR_UPDATE,
00032 NMF_EVENT_PDU_RECV,
00033 NMF_EVENT_PORT_STATUS,
00034 NMF_EVENT_SECURITY
00035 };
00036 typedef enum nmf_event_type nmf_event_type;
00037
00038 enum nmf_port_status {
00039 NMF_PORT_STATUS_DOWN=0,
00040 NMF_PORT_STATUS_UP,
00041 NMF_PORT_STATUS_SPEED
00042 };
00043 typedef enum nmf_port_status nmf_port_status;
00044
00045 struct nmf_port_info {
00046 u_int speed;
00047 u_int mtu;
00048 u_char ethaddr[6];
00049 };
00050
00051 struct nmf_event_port_status {
00052 struct nmf_event_hdr h;
00053 u_int num;
00054 nmf_port_status status;
00055 struct nmf_port_info info;
00056 };
00057 typedef struct nmf_event_port_status nmf_event_port_status;
00058
00059 enum nmf_switch_caps {
00060 NMF_SW_CAP_X,
00061 NMF_SW_CAP_Y,
00062 NMF_SW_CAP_Z
00063 };
00064 typedef enum nmf_switch_caps nmf_switch_caps;
00065
00066 typedef struct nmf_port_info_node *nmf_port_info_list;
00067
00068 struct nmf_port_info_node {
00069 struct nmf_port_info info;
00070 nmf_port_info_list next;
00071 };
00072
00073 struct nmf_event_switch_add {
00074 struct nmf_event_hdr h;
00075 nmf_switch_caps capabilities;
00076 nmf_port_info_list port_info;
00077 };
00078
00079 struct nmf_event_switch_rem {
00080 struct nmf_event_hdr h;
00081 };
00082
00083 struct nmf_event_switch_update {
00084 struct nmf_event_hdr h;
00085 };
00086
00087 enum nmf_addr_entry_event {
00088 NMF_ENTRY_LEARNED = 1,
00089 NMF_ENTRY_AGED
00090 };
00091 typedef enum nmf_addr_entry_event nmf_addr_entry_event;
00092
00093 struct nmf_event_ethaddr_entry {
00094 u_int dest_mask[2];
00095 u_short vlan_id;
00096 u_char valid;
00097 u_char type;
00098 u_int trigger;
00099 u_int event;
00100 u_char ethaddr[6];
00101 };
00102 typedef struct nmf_event_ethaddr_entry nmf_event_ethaddr_entry;
00103
00104 struct nmf_event_security {
00105 struct nmf_event_hdr h;
00106 u_int src_port;
00107 u_short vlan_id;
00108 u_char ethaddr[6];
00109 };
00110
00111 #endif