Lines Matching refs:skcb

320 static inline bool j1939_cb_is_broadcast(const struct j1939_sk_buff_cb *skcb)  in j1939_cb_is_broadcast()  argument
322 return (!skcb->addr.dst_name && (skcb->addr.da == 0xff)); in j1939_cb_is_broadcast()
356 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_session_skb_queue() local
361 if (j1939_address_is_unicast(skcb->addr.da) && in j1939_session_skb_queue()
362 priv->ents[skcb->addr.da].nusers) in j1939_session_skb_queue()
363 skcb->flags |= J1939_ECU_LOCAL_DST; in j1939_session_skb_queue()
365 skcb->flags |= J1939_ECU_LOCAL_SRC; in j1939_session_skb_queue()
415 static inline int j1939_tp_im_receiver(const struct j1939_sk_buff_cb *skcb) in j1939_tp_im_receiver() argument
417 return skcb->flags & J1939_ECU_LOCAL_DST; in j1939_tp_im_receiver()
421 static inline int j1939_tp_im_transmitter(const struct j1939_sk_buff_cb *skcb) in j1939_tp_im_transmitter() argument
423 return skcb->flags & J1939_ECU_LOCAL_SRC; in j1939_tp_im_transmitter()
427 static int j1939_tp_im_involved(const struct j1939_sk_buff_cb *skcb, bool swap) in j1939_tp_im_involved() argument
430 return j1939_tp_im_receiver(skcb); in j1939_tp_im_involved()
432 return j1939_tp_im_transmitter(skcb); in j1939_tp_im_involved()
435 static int j1939_tp_im_involved_anydir(struct j1939_sk_buff_cb *skcb) in j1939_tp_im_involved_anydir() argument
437 return skcb->flags & (J1939_ECU_LOCAL_SRC | J1939_ECU_LOCAL_DST); in j1939_tp_im_involved_anydir()
524 if (j1939_session_match(&session->skcb.addr, addr, reverse) && in j1939_session_get_by_addr_locked()
537 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_session_get_simple() local
545 if (session->skcb.addr.type == J1939_SIMPLE && in j1939_session_get_simple()
546 session->tskey == skcb->tskey && session->sk == skb->sk) in j1939_session_get_simple()
570 static void j1939_skbcb_swap(struct j1939_sk_buff_cb *skcb) in j1939_skbcb_swap() argument
574 swap(skcb->addr.dst_name, skcb->addr.src_name); in j1939_skbcb_swap()
575 swap(skcb->addr.da, skcb->addr.sa); in j1939_skbcb_swap()
578 if (skcb->flags & J1939_ECU_LOCAL_SRC) in j1939_skbcb_swap()
580 if (skcb->flags & J1939_ECU_LOCAL_DST) in j1939_skbcb_swap()
582 skcb->flags &= ~(J1939_ECU_LOCAL_SRC | J1939_ECU_LOCAL_DST); in j1939_skbcb_swap()
583 skcb->flags |= tmp; in j1939_skbcb_swap()
593 struct j1939_sk_buff_cb *skcb; in j1939_tp_tx_dat_new() local
608 skcb = j1939_skb_to_cb(skb); in j1939_tp_tx_dat_new()
610 j1939_skbcb_swap(skcb); in j1939_tp_tx_dat_new()
613 if (skcb->addr.type == J1939_ETP) in j1939_tp_tx_dat_new()
614 skcb->addr.pgn = J1939_ETP_PGN_CTL; in j1939_tp_tx_dat_new()
616 skcb->addr.pgn = J1939_TP_PGN_CTL; in j1939_tp_tx_dat_new()
618 if (skcb->addr.type == J1939_ETP) in j1939_tp_tx_dat_new()
619 skcb->addr.pgn = J1939_ETP_PGN_DAT; in j1939_tp_tx_dat_new()
621 skcb->addr.pgn = J1939_TP_PGN_DAT; in j1939_tp_tx_dat_new()
634 skb = j1939_tp_tx_dat_new(priv, &session->skcb, in j1939_tp_tx_dat()
674 return j1939_xtp_do_tx_ctl(priv, &session->skcb, in j1939_tp_tx_ctl()
676 session->skcb.addr.pgn, dat); in j1939_tp_tx_ctl()
723 if (session->skcb.addr.type == J1939_ETP) { in j1939_session_tx_rts()
729 } else if (j1939_cb_is_broadcast(&session->skcb)) { in j1939_session_tx_rts()
807 if (session->skcb.addr.type != J1939_ETP && in j1939_session_tx_dat()
808 j1939_cb_is_broadcast(&session->skcb)) in j1939_session_tx_dat()
848 pdelay = j1939_cb_is_broadcast(&session->skcb) ? 50 : in j1939_session_tx_dat()
874 if (!j1939_tp_im_transmitter(&session->skcb)) { in j1939_xtp_txnext_transmiter()
915 if (!j1939_sk_recv_match(priv, &session->skcb)) in j1939_session_tx_cts()
922 if (session->skcb.addr.type == J1939_ETP) { in j1939_session_tx_cts()
959 if (!j1939_sk_recv_match(priv, &session->skcb)) in j1939_session_tx_eoma()
964 if (session->skcb.addr.type == J1939_ETP) { in j1939_session_tx_eoma()
1000 if (!j1939_tp_im_receiver(&session->skcb)) { in j1939_xtp_txnext_receiver()
1016 if ((session->skcb.addr.type == J1939_TP && in j1939_xtp_txnext_receiver()
1017 j1939_cb_is_broadcast(&session->skcb))) in j1939_xtp_txnext_receiver()
1123 if (!j1939_cb_is_broadcast(&session->skcb)) { in __j1939_session_cancel()
1124 j1939_xtp_tx_abort(priv, &session->skcb, in __j1939_session_cancel()
1126 err, session->skcb.addr.pgn); in __j1939_session_cancel()
1156 if (session->skcb.addr.type == J1939_SIMPLE) { in j1939_tp_txtimer()
1197 if (session->skcb.addr.type != J1939_SIMPLE) { in j1939_tp_txtimer()
1238 } else if (session->skcb.addr.type == J1939_SIMPLE) { in j1939_tp_rxtimer()
1270 const struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_cmd_bad_pgn() local
1276 if (session->skcb.addr.pgn == pgn) in j1939_xtp_rx_cmd_bad_pgn()
1316 __func__, session, cmd, pgn, session->skcb.addr.pgn); in j1939_xtp_rx_cmd_bad_pgn()
1318 j1939_xtp_tx_abort(priv, skcb, true, abort, pgn); in j1939_xtp_rx_cmd_bad_pgn()
1326 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_abort_one() local
1330 session = j1939_session_get_by_addr(priv, &skcb->addr, reverse, in j1939_xtp_rx_abort_one()
1366 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_eoma_one() local
1375 if (skcb->addr.type == J1939_ETP) in j1939_xtp_rx_eoma_one()
1399 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_eoma() local
1402 session = j1939_session_get_by_addr(priv, &skcb->addr, true, in j1939_xtp_rx_eoma()
1430 if (session->skcb.addr.type == J1939_ETP) in j1939_xtp_rx_cts_one()
1474 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_cts() local
1477 session = j1939_session_get_by_addr(priv, &skcb->addr, true, in j1939_xtp_rx_cts()
1489 struct j1939_sk_buff_cb *skcb; in j1939_session_new() local
1507 skcb = j1939_skb_to_cb(skb); in j1939_session_new()
1508 memcpy(&session->skcb, skcb, sizeof(session->skcb)); in j1939_session_new()
1518 __func__, session, skcb->addr.sa, skcb->addr.da); in j1939_session_new()
1529 struct j1939_sk_buff_cb *skcb; in j1939_session_fresh_new() local
1540 skcb = j1939_skb_to_cb(skb); in j1939_session_fresh_new()
1541 memcpy(skcb, rel_skcb, sizeof(*skcb)); in j1939_session_fresh_new()
1562 if (session->skcb.addr.type != J1939_SIMPLE) in j1939_session_activate()
1565 &session->skcb.addr, false, in j1939_session_activate()
1590 struct j1939_sk_buff_cb skcb = *j1939_skb_to_cb(skb); in j1939_xtp_rx_rts_session_new() local
1600 skcb.addr.pgn = pgn; in j1939_xtp_rx_rts_session_new()
1602 if (!j1939_sk_recv_match(priv, &skcb)) in j1939_xtp_rx_rts_session_new()
1605 if (skcb.addr.type == J1939_ETP) { in j1939_xtp_rx_rts_session_new()
1624 j1939_xtp_tx_abort(priv, &skcb, true, abort, pgn); in j1939_xtp_rx_rts_session_new()
1628 session = j1939_session_fresh_new(priv, len, &skcb); in j1939_xtp_rx_rts_session_new()
1630 j1939_xtp_tx_abort(priv, &skcb, true, in j1939_xtp_rx_rts_session_new()
1638 if (skcb.addr.type != J1939_ETP) { in j1939_xtp_rx_rts_session_new()
1661 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_rts_session_active() local
1676 __func__, session, skcb->addr.sa, skcb->addr.da, in j1939_xtp_rx_rts_session_active()
1685 if (session->skcb.addr.sa != skcb->addr.sa || in j1939_xtp_rx_rts_session_active()
1686 session->skcb.addr.da != skcb->addr.da) in j1939_xtp_rx_rts_session_active()
1689 session->skcb.addr.sa, skcb->addr.sa, in j1939_xtp_rx_rts_session_active()
1690 session->skcb.addr.da, skcb->addr.da); in j1939_xtp_rx_rts_session_active()
1695 session->skcb.addr.sa = skcb->addr.sa; in j1939_xtp_rx_rts_session_active()
1696 session->skcb.addr.da = skcb->addr.da; in j1939_xtp_rx_rts_session_active()
1706 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_rts() local
1710 session = j1939_session_get_by_addr(priv, &skcb->addr, false, in j1939_xtp_rx_rts()
1734 if (cmd == J1939_TP_CMD_BAM && j1939_sk_recv_match(priv, skcb)) in j1939_xtp_rx_rts()
1783 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_dpo() local
1786 session = j1939_session_get_by_addr(priv, &skcb->addr, false, in j1939_xtp_rx_dpo()
1803 struct j1939_sk_buff_cb *skcb, *se_skcb; in j1939_xtp_rx_dat_one() local
1814 skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_dat_one()
1826 if (skcb->addr.type == J1939_ETP) in j1939_xtp_rx_dat_one()
1832 if (skcb->addr.type != J1939_ETP) in j1939_xtp_rx_dat_one()
1886 j1939_cb_is_broadcast(&session->skcb)) { in j1939_xtp_rx_dat_one()
1925 struct j1939_sk_buff_cb *skcb; in j1939_xtp_rx_dat() local
1928 skcb = j1939_skb_to_cb(skb); in j1939_xtp_rx_dat()
1930 if (j1939_tp_im_transmitter(skcb)) { in j1939_xtp_rx_dat()
1931 session = j1939_session_get_by_addr(priv, &skcb->addr, false, in j1939_xtp_rx_dat()
1940 if (j1939_tp_im_receiver(skcb)) { in j1939_xtp_rx_dat()
1941 session = j1939_session_get_by_addr(priv, &skcb->addr, false, in j1939_xtp_rx_dat()
1950 if (j1939_cb_is_broadcast(skcb)) { in j1939_xtp_rx_dat()
1951 session = j1939_session_get_by_addr(priv, &skcb->addr, false, in j1939_xtp_rx_dat()
1962 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_tp_send() local
1966 if (skcb->addr.pgn == J1939_TP_PGN_DAT || in j1939_tp_send()
1967 skcb->addr.pgn == J1939_TP_PGN_CTL || in j1939_tp_send()
1968 skcb->addr.pgn == J1939_ETP_PGN_DAT || in j1939_tp_send()
1969 skcb->addr.pgn == J1939_ETP_PGN_CTL) in j1939_tp_send()
1977 skcb->addr.type = J1939_SIMPLE; in j1939_tp_send()
1979 skcb->addr.type = J1939_ETP; in j1939_tp_send()
1981 skcb->addr.type = J1939_TP; in j1939_tp_send()
1983 if (skcb->addr.type == J1939_ETP && in j1939_tp_send()
1984 j1939_cb_is_broadcast(skcb)) in j1939_tp_send()
1993 if (j1939_address_is_unicast(skcb->addr.da) && in j1939_tp_send()
1994 priv->ents[skcb->addr.da].nusers) in j1939_tp_send()
1995 skcb->flags |= J1939_ECU_LOCAL_DST; in j1939_tp_send()
1998 skcb->flags |= J1939_ECU_LOCAL_SRC; in j1939_tp_send()
2010 session->pkt.block = skcb->addr.type == J1939_ETP ? 255 : in j1939_tp_send()
2013 if (j1939_cb_is_broadcast(&session->skcb)) in j1939_tp_send()
2017 skcb->tskey = atomic_inc_return(&session->sk->sk_tskey) - 1; in j1939_tp_send()
2018 session->tskey = skcb->tskey; in j1939_tp_send()
2025 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_tp_cmd_recv() local
2034 if (cmd == J1939_TP_CMD_BAM && !j1939_cb_is_broadcast(skcb)) { in j1939_tp_cmd_recv()
2036 __func__, skcb->addr.sa); in j1939_tp_cmd_recv()
2041 if (skcb->addr.type != extd) in j1939_tp_cmd_recv()
2044 if (cmd == J1939_TP_CMD_RTS && j1939_cb_is_broadcast(skcb)) { in j1939_tp_cmd_recv()
2046 __func__, skcb->addr.sa); in j1939_tp_cmd_recv()
2050 if (j1939_tp_im_transmitter(skcb)) in j1939_tp_cmd_recv()
2053 if (j1939_tp_im_receiver(skcb) || j1939_cb_is_broadcast(skcb)) in j1939_tp_cmd_recv()
2062 if (skcb->addr.type != extd) in j1939_tp_cmd_recv()
2065 if (j1939_tp_im_transmitter(skcb)) in j1939_tp_cmd_recv()
2068 if (j1939_tp_im_receiver(skcb)) in j1939_tp_cmd_recv()
2074 if (skcb->addr.type != J1939_ETP) in j1939_tp_cmd_recv()
2077 if (j1939_tp_im_transmitter(skcb)) in j1939_tp_cmd_recv()
2080 if (j1939_tp_im_receiver(skcb)) in j1939_tp_cmd_recv()
2089 if (skcb->addr.type != extd) in j1939_tp_cmd_recv()
2092 if (j1939_tp_im_transmitter(skcb)) in j1939_tp_cmd_recv()
2095 if (j1939_tp_im_receiver(skcb)) in j1939_tp_cmd_recv()
2101 if (j1939_cb_is_broadcast(skcb)) { in j1939_tp_cmd_recv()
2103 __func__, skcb->addr.sa); in j1939_tp_cmd_recv()
2107 if (j1939_tp_im_transmitter(skcb)) in j1939_tp_cmd_recv()
2110 if (j1939_tp_im_receiver(skcb)) in j1939_tp_cmd_recv()
2121 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb); in j1939_tp_recv() local
2123 if (!j1939_tp_im_involved_anydir(skcb) && !j1939_cb_is_broadcast(skcb)) in j1939_tp_recv()
2126 switch (skcb->addr.pgn) { in j1939_tp_recv()
2128 skcb->addr.type = J1939_ETP; in j1939_tp_recv()
2135 skcb->addr.type = J1939_ETP; in j1939_tp_recv()