/* * Higher level upcall for a LAPB frame */ int ax25_std_frame_in(ax25_cb *ax25, struct sk_buff *skb, int type) { int queued = 0, frametype, ns, nr, pf; frametype = ax25_decode(ax25, skb, &ns, &nr, &pf); switch (ax25->state) { case AX25_STATE_1: queued = ax25_std_state1_machine(ax25, skb, frametype, pf, type); break; case AX25_STATE_2: queued = ax25_std_state2_machine(ax25, skb, frametype, pf, type); break; case AX25_STATE_3: queued = ax25_std_state3_machine(ax25, skb, frametype, ns, nr, pf, type); break; case AX25_STATE_4: queued = ax25_std_state4_machine(ax25, skb, frametype, ns, nr, pf, type); break; } ax25_kick(ax25); return queued; }
/* * Higher level upcall for a LAPB frame */ int ax25_process_rx_frame(ax25_cb *ax25, struct sk_buff *skb, int type, int dama) { int queued = 0, frametype, ns, nr, pf; if (ax25->state == AX25_STATE_0) return 0; del_timer(&ax25->timer); frametype = ax25_decode(ax25, skb, &ns, &nr, &pf); switch (ax25->state) { case AX25_STATE_1: queued = ax25_state1_machine(ax25, skb, frametype, pf, type, dama); break; case AX25_STATE_2: queued = ax25_state2_machine(ax25, skb, frametype, pf, type); break; case AX25_STATE_3: queued = ax25_state3_machine(ax25, skb, frametype, ns, nr, pf, type, dama); break; case AX25_STATE_4: queued = ax25_state4_machine(ax25, skb, frametype, ns, nr, pf, type, dama); break; } ax25_set_timer(ax25); return queued; }