Lines Matching defs:skcb

316 static inline bool j1939_cb_is_broadcast(const struct j1939_sk_buff_cb *skcb)
318 return (!skcb->addr.dst_name && (skcb->addr.da == 0xff));
352 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
357 if (j1939_address_is_unicast(skcb->addr.da) &&
358 priv->ents[skcb->addr.da].nusers)
359 skcb->flags |= J1939_ECU_LOCAL_DST;
361 skcb->flags |= J1939_ECU_LOCAL_SRC;
411 static inline int j1939_tp_im_receiver(const struct j1939_sk_buff_cb *skcb)
413 return skcb->flags & J1939_ECU_LOCAL_DST;
417 static inline int j1939_tp_im_transmitter(const struct j1939_sk_buff_cb *skcb)
419 return skcb->flags & J1939_ECU_LOCAL_SRC;
423 static int j1939_tp_im_involved(const struct j1939_sk_buff_cb *skcb, bool swap)
426 return j1939_tp_im_receiver(skcb);
428 return j1939_tp_im_transmitter(skcb);
431 static int j1939_tp_im_involved_anydir(struct j1939_sk_buff_cb *skcb)
433 return skcb->flags & (J1939_ECU_LOCAL_SRC | J1939_ECU_LOCAL_DST);
520 if (j1939_session_match(&session->skcb.addr, addr, reverse) &&
533 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
541 if (session->skcb.addr.type == J1939_SIMPLE &&
542 session->tskey == skcb->tskey && session->sk == skb->sk)
566 static void j1939_skbcb_swap(struct j1939_sk_buff_cb *skcb)
570 swap(skcb->addr.dst_name, skcb->addr.src_name);
571 swap(skcb->addr.da, skcb->addr.sa);
574 if (skcb->flags & J1939_ECU_LOCAL_SRC)
576 if (skcb->flags & J1939_ECU_LOCAL_DST)
578 skcb->flags &= ~(J1939_ECU_LOCAL_SRC | J1939_ECU_LOCAL_DST);
579 skcb->flags |= tmp;
589 struct j1939_sk_buff_cb *skcb;
607 skcb = j1939_skb_to_cb(skb);
609 j1939_skbcb_swap(skcb);
612 if (skcb->addr.type == J1939_ETP)
613 skcb->addr.pgn = J1939_ETP_PGN_CTL;
615 skcb->addr.pgn = J1939_TP_PGN_CTL;
617 if (skcb->addr.type == J1939_ETP)
618 skcb->addr.pgn = J1939_ETP_PGN_DAT;
620 skcb->addr.pgn = J1939_TP_PGN_DAT;
633 skb = j1939_tp_tx_dat_new(priv, &session->skcb,
673 return j1939_xtp_do_tx_ctl(priv, &session->skcb,
675 session->skcb.addr.pgn, dat);
722 if (session->skcb.addr.type == J1939_ETP) {
728 } else if (j1939_cb_is_broadcast(&session->skcb)) {
790 struct j1939_sk_buff_cb *skcb;
802 skcb = j1939_skb_to_cb(se_skb);
806 if (session->skcb.addr.type != J1939_ETP &&
807 j1939_cb_is_broadcast(&session->skcb))
814 offset = (session->pkt.tx * 7) - skcb->offset;
822 __func__, session, skcb->offset, se_skb->len , session->pkt.tx);
846 pdelay = j1939_cb_is_broadcast(&session->skcb) ? 50 :
872 if (!j1939_tp_im_transmitter(&session->skcb)) {
913 if (!j1939_sk_recv_match(priv, &session->skcb))
920 if (session->skcb.addr.type == J1939_ETP) {
957 if (!j1939_sk_recv_match(priv, &session->skcb))
962 if (session->skcb.addr.type == J1939_ETP) {
998 if (!j1939_tp_im_receiver(&session->skcb)) {
1014 if ((session->skcb.addr.type == J1939_TP &&
1015 j1939_cb_is_broadcast(&session->skcb)))
1117 if (!j1939_cb_is_broadcast(&session->skcb)) {
1118 j1939_xtp_tx_abort(priv, &session->skcb,
1120 err, session->skcb.addr.pgn);
1148 if (session->skcb.addr.type == J1939_SIMPLE) {
1189 if (session->skcb.addr.type != J1939_SIMPLE) {
1230 } else if (session->skcb.addr.type == J1939_SIMPLE) {
1262 const struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1268 if (session->skcb.addr.pgn == pgn)
1305 __func__, session, cmd, pgn, session->skcb.addr.pgn);
1307 j1939_xtp_tx_abort(priv, skcb, true, abort, pgn);
1315 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1319 session = j1939_session_get_by_addr(priv, &skcb->addr, reverse,
1353 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1362 if (skcb->addr.type == J1939_ETP)
1386 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1389 session = j1939_session_get_by_addr(priv, &skcb->addr, true,
1417 if (session->skcb.addr.type == J1939_ETP)
1461 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1464 session = j1939_session_get_by_addr(priv, &skcb->addr, true,
1476 struct j1939_sk_buff_cb *skcb;
1494 skcb = j1939_skb_to_cb(skb);
1495 memcpy(&session->skcb, skcb, sizeof(session->skcb));
1505 __func__, session, skcb->addr.sa, skcb->addr.da);
1516 struct j1939_sk_buff_cb *skcb;
1527 skcb = j1939_skb_to_cb(skb);
1528 memcpy(skcb, rel_skcb, sizeof(*skcb));
1549 if (session->skcb.addr.type != J1939_SIMPLE)
1552 &session->skcb.addr, false,
1577 struct j1939_sk_buff_cb skcb = *j1939_skb_to_cb(skb);
1587 skcb.addr.pgn = pgn;
1589 if (!j1939_sk_recv_match(priv, &skcb))
1592 if (skcb.addr.type == J1939_ETP) {
1611 j1939_xtp_tx_abort(priv, &skcb, true, abort, pgn);
1615 session = j1939_session_fresh_new(priv, len, &skcb);
1617 j1939_xtp_tx_abort(priv, &skcb, true,
1625 if (skcb.addr.type != J1939_ETP) {
1645 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1660 __func__, session, skcb->addr.sa, skcb->addr.da,
1669 if (session->skcb.addr.sa != skcb->addr.sa ||
1670 session->skcb.addr.da != skcb->addr.da)
1671 netdev_warn(priv->ndev, "%s: 0x%p: session->skcb.addr.sa=0x%02x skcb->addr.sa=0x%02x session->skcb.addr.da=0x%02x skcb->addr.da=0x%02x\n",
1673 session->skcb.addr.sa, skcb->addr.sa,
1674 session->skcb.addr.da, skcb->addr.da);
1679 session->skcb.addr.sa = skcb->addr.sa;
1680 session->skcb.addr.da = skcb->addr.da;
1690 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1694 session = j1939_session_get_by_addr(priv, &skcb->addr, false,
1718 if (cmd == J1939_TP_CMD_BAM && j1939_sk_recv_match(priv, skcb))
1764 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1767 session = j1939_session_get_by_addr(priv, &skcb->addr, false,
1784 struct j1939_sk_buff_cb *skcb;
1795 skcb = j1939_skb_to_cb(skb);
1807 if (skcb->addr.type == J1939_ETP)
1812 if (skcb->addr.type != J1939_ETP)
1836 skcb = j1939_skb_to_cb(se_skb);
1837 offset = packet * 7 - skcb->offset;
1865 if (skcb->addr.type != J1939_ETP &&
1866 j1939_cb_is_broadcast(&session->skcb)) {
1905 struct j1939_sk_buff_cb *skcb;
1908 skcb = j1939_skb_to_cb(skb);
1910 if (j1939_tp_im_transmitter(skcb)) {
1911 session = j1939_session_get_by_addr(priv, &skcb->addr, false,
1920 if (j1939_tp_im_receiver(skcb)) {
1921 session = j1939_session_get_by_addr(priv, &skcb->addr, false,
1930 if (j1939_cb_is_broadcast(skcb)) {
1931 session = j1939_session_get_by_addr(priv, &skcb->addr, false,
1942 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
1946 if (skcb->addr.pgn == J1939_TP_PGN_DAT ||
1947 skcb->addr.pgn == J1939_TP_PGN_CTL ||
1948 skcb->addr.pgn == J1939_ETP_PGN_DAT ||
1949 skcb->addr.pgn == J1939_ETP_PGN_CTL)
1957 skcb->addr.type = J1939_SIMPLE;
1959 skcb->addr.type = J1939_ETP;
1961 skcb->addr.type = J1939_TP;
1963 if (skcb->addr.type == J1939_ETP &&
1964 j1939_cb_is_broadcast(skcb))
1973 if (j1939_address_is_unicast(skcb->addr.da) &&
1974 priv->ents[skcb->addr.da].nusers)
1975 skcb->flags |= J1939_ECU_LOCAL_DST;
1978 skcb->flags |= J1939_ECU_LOCAL_SRC;
1990 session->pkt.block = skcb->addr.type == J1939_ETP ? 255 :
1993 if (j1939_cb_is_broadcast(&session->skcb))
1997 skcb->tskey = session->sk->sk_tskey++;
1998 session->tskey = skcb->tskey;
2005 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
2014 if (cmd == J1939_TP_CMD_BAM && !j1939_cb_is_broadcast(skcb)) {
2016 __func__, skcb->addr.sa);
2021 if (skcb->addr.type != extd)
2024 if (cmd == J1939_TP_CMD_RTS && j1939_cb_is_broadcast(skcb)) {
2026 __func__, skcb->addr.sa);
2030 if (j1939_tp_im_transmitter(skcb))
2033 if (j1939_tp_im_receiver(skcb) || j1939_cb_is_broadcast(skcb))
2042 if (skcb->addr.type != extd)
2045 if (j1939_tp_im_transmitter(skcb))
2048 if (j1939_tp_im_receiver(skcb))
2054 if (skcb->addr.type != J1939_ETP)
2057 if (j1939_tp_im_transmitter(skcb))
2060 if (j1939_tp_im_receiver(skcb))
2069 if (skcb->addr.type != extd)
2072 if (j1939_tp_im_transmitter(skcb))
2075 if (j1939_tp_im_receiver(skcb))
2081 if (j1939_cb_is_broadcast(skcb)) {
2083 __func__, skcb->addr.sa);
2087 if (j1939_tp_im_transmitter(skcb))
2090 if (j1939_tp_im_receiver(skcb))
2101 struct j1939_sk_buff_cb *skcb = j1939_skb_to_cb(skb);
2103 if (!j1939_tp_im_involved_anydir(skcb) && !j1939_cb_is_broadcast(skcb))
2106 switch (skcb->addr.pgn) {
2108 skcb->addr.type = J1939_ETP;
2115 skcb->addr.type = J1939_ETP;