• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/contrib/alpine-hal/eth/

Lines Matching defs:pkt

99 #define AL_ETH_TX_MACSEC_SIGN_SHIFT			  0		/* Sign TX pkt */
100 #define AL_ETH_TX_MACSEC_ENCRYPT_SHIFT 1 /* Encrypt TX pkt */
2279 al_dump_tx_pkt(struct al_udma_q *tx_dma_q, struct al_eth_pkt *pkt)
2281 const char *tso = (pkt->flags & AL_ETH_TX_FLAGS_TSO) ? "TSO" : "";
2282 const char *l3_csum = (pkt->flags & AL_ETH_TX_FLAGS_IPV4_L3_CSUM) ? "L3 CSUM" : "";
2283 const char *l4_csum = (pkt->flags & AL_ETH_TX_FLAGS_L4_CSUM) ?
2284 ((pkt->flags & AL_ETH_TX_FLAGS_L4_PARTIAL_CSUM) ? "L4 PARTIAL CSUM" : "L4 FULL CSUM") : "";
2285 const char *fcs = (pkt->flags & AL_ETH_TX_FLAGS_L2_DIS_FCS) ? "Disable FCS" : "";
2286 const char *ptp = (pkt->flags & AL_ETH_TX_FLAGS_TS) ? "TX_PTP" : "";
2290 const char *tunnel_mode = (((pkt->tunnel_mode &
2293 (((pkt->tunnel_mode &
2302 switch (pkt->l3_proto_idx) {
2314 switch (pkt->l4_proto_idx) {
2326 switch (pkt->outer_l3_proto_idx) {
2339 tx_dma_q->udma->name, tx_dma_q->qid, pkt->l3_proto_idx,
2340 l3_proto_name, pkt->l4_proto_idx, l4_proto_name,
2341 pkt->outer_l3_proto_idx, outer_l3_proto_name,
2342 pkt->source_vlan_count, pkt->vlan_mod_add_count,
2343 pkt->vlan_mod_del_count);
2345 if (pkt->meta) {
2346 const char * store = pkt->meta->store ? "Yes" : "No";
2347 const char *ptp_val = (pkt->flags & AL_ETH_TX_FLAGS_TS) ? "Yes" : "No";
2349 al_dbg("[%s %d]: tx pkt with meta data. words valid %x\n",
2351 pkt->meta->words_valid);
2355 pkt->meta->l3_header_len, pkt->meta->l3_header_offset,
2356 pkt->meta->l4_header_len, pkt->meta->mss_val,
2357 pkt->meta->ts_index, ptp_val);
2359 pkt->meta->outer_l3_offset, pkt->meta->outer_l3_len);
2363 pkt->num_of_bufs);
2364 for (i = 0; i < pkt->num_of_bufs; i++) {
2366 i, pkt->bufs[i].len, (unsigned long long)pkt->bufs[i].addr);
2367 total_len += pkt->bufs[i].len;
2377 int al_eth_tx_pkt_prepare(struct al_udma_q *tx_dma_q, struct al_eth_pkt *pkt)
2383 (pkt->flags & AL_ETH_TX_FLAGS_INT);
2384 uint64_t tgtid = ((uint64_t)pkt->tgtid) << AL_UDMA_DESC_TGTID_SHIFT;
2389 al_dbg("[%s %d]: new tx pkt\n", tx_dma_q->udma->name, tx_dma_q->qid);
2391 al_dump_tx_pkt(tx_dma_q, pkt);
2393 tx_descs = pkt->num_of_bufs;
2394 if (pkt->meta) {
2398 al_assert((pkt->ext_meta_data == NULL) || (tx_dma_q->adapter_rev_id > AL_ETH_REV_ID_2));
2400 tx_descs += al_eth_ext_metadata_needed_descs(pkt->ext_meta_data);
2403 al_eth_ext_metadata_needed_descs(pkt->ext_meta_data),
2404 (pkt->meta != NULL), pkt->num_of_bufs);
2414 if (pkt->ext_meta_data != NULL) {
2415 al_eth_ext_metadata_create(tx_dma_q, &flags, pkt->ext_meta_data);
2420 if (pkt->meta) {
2436 meta_word_0 |= pkt->meta->words_valid << 12;
2438 if (pkt->meta->store)
2441 if (pkt->meta->words_valid & 1) {
2442 meta_word_0 |= pkt->meta->vlan1_cfi_sel;
2443 meta_word_0 |= pkt->meta->vlan2_vid_sel << 2;
2444 meta_word_0 |= pkt->meta->vlan2_cfi_sel << 4;
2445 meta_word_0 |= pkt->meta->vlan2_pbits_sel << 6;
2446 meta_word_0 |= pkt->meta->vlan2_ether_sel << 8;
2449 if (pkt->meta->words_valid & 2) {
2450 meta_word_1 = pkt->meta->vlan1_new_vid;
2451 meta_word_1 |= pkt->meta->vlan1_new_cfi << 12;
2452 meta_word_1 |= pkt->meta->vlan1_new_pbits << 13;
2453 meta_word_1 |= pkt->meta->vlan2_new_vid << 16;
2454 meta_word_1 |= pkt->meta->vlan2_new_cfi << 28;
2455 meta_word_1 |= pkt->meta->vlan2_new_pbits << 29;
2458 if (pkt->meta->words_valid & 4) {
2461 meta_word_2 = pkt->meta->l3_header_len & AL_ETH_TX_META_L3_LEN_MASK;
2462 meta_word_2 |= (pkt->meta->l3_header_offset & AL_ETH_TX_META_L3_OFF_MASK) <<
2464 meta_word_2 |= (pkt->meta->l4_header_len & 0x3f) << 16;
2466 if (unlikely(pkt->flags & AL_ETH_TX_FLAGS_TS))
2467 meta_word_0 |= pkt->meta->ts_index <<
2470 meta_word_0 |= (((pkt->meta->mss_val & 0x3c00) >> 10)
2472 meta_word_2 |= ((pkt->meta->mss_val & 0x03ff)
2479 l3_offset = (pkt->meta->outer_l3_offset >> 1);
2496 (((pkt->meta->outer_l3_len >> 2) &
2508 meta_ctrl = pkt->flags & AL_ETH_TX_PKT_META_FLAGS;
2511 al_assert((pkt->flags & (AL_ETH_TX_FLAGS_L4_CSUM|AL_ETH_TX_FLAGS_L4_PARTIAL_CSUM)) !=
2515 al_assert((pkt->flags & (AL_ETH_TX_FLAGS_TSO|AL_ETH_TX_FLAGS_TS)) !=
2518 meta_ctrl |= pkt->l3_proto_idx;
2519 meta_ctrl |= pkt->l4_proto_idx << AL_ETH_TX_L4_PROTO_IDX_SHIFT;
2520 meta_ctrl |= pkt->source_vlan_count << AL_ETH_TX_SRC_VLAN_CNT_SHIFT;
2521 meta_ctrl |= pkt->vlan_mod_add_count << AL_ETH_TX_VLAN_MOD_ADD_SHIFT;
2522 meta_ctrl |= pkt->vlan_mod_del_count << AL_ETH_TX_VLAN_MOD_DEL_SHIFT;
2523 meta_ctrl |= pkt->vlan_mod_v1_ether_sel << AL_ETH_TX_VLAN_MOD_E_SEL_SHIFT;
2524 meta_ctrl |= pkt->vlan_mod_v1_vid_sel << AL_ETH_TX_VLAN_MOD_VID_SEL_SHIFT;
2525 meta_ctrl |= pkt->vlan_mod_v1_pbits_sel << AL_ETH_TX_VLAN_MOD_PBIT_SEL_SHIFT;
2528 if ((pkt->ext_meta_data != NULL) && (pkt->ext_meta_data->tx_crypto_data != NULL))
2532 meta_ctrl |= pkt->tunnel_mode << AL_ETH_TX_TUNNEL_MODE_SHIFT;
2533 if (pkt->outer_l3_proto_idx == AL_ETH_PROTO_ID_IPv4)
2536 flags |= pkt->flags & AL_ETH_TX_PKT_UDMA_FLAGS;
2537 for(buf_idx = 0; buf_idx < pkt->num_of_bufs; buf_idx++ ) {
2547 if (buf_idx == (pkt->num_of_bufs - 1))
2554 flags_len |= pkt->bufs[buf_idx].len & AL_M2S_DESC_LEN_MASK;
2559 pkt->bufs[buf_idx].addr | tgtid);
2563 al_dbg("[%s %d]: pkt descriptors written into the tx queue. descs num (%d)\n",
2757 struct al_eth_pkt *pkt)
2773 pkt->rx_header_len = 0;
2785 pkt->rx_header_len = (buf2_len & AL_S2M_DESC_LEN2_MASK) >>
2790 pkt->bufs[i].len = buf1_len & AL_S2M_DESC_LEN_MASK;
2792 pkt->bufs[i].len = 0;
2795 pkt->flags = swap32_from_le(rx_desc->ctrl_meta);
2797 pkt->rx_desc_raw[0] = pkt->flags;
2798 pkt->rx_desc_raw[1] = swap32_from_le(rx_desc->len);
2799 pkt->rx_desc_raw[2] = swap32_from_le(rx_desc->word2);
2800 pkt->rx_desc_raw[3] = swap32_from_le(rx_desc->word3);
2803 pkt->l3_proto_idx = pkt->flags & AL_ETH_RX_L3_PROTO_IDX_MASK;
2804 pkt->l4_proto_idx = (pkt->flags >> AL_ETH_RX_L4_PROTO_IDX_SHIFT) &
2806 pkt->rxhash = (swap32_from_le(rx_desc->len) & AL_ETH_RX_HASH_MASK) >>
2808 pkt->l3_offset = (swap32_from_le(rx_desc->word2) & AL_ETH_RX_L3_OFFSET_MASK) >> AL_ETH_RX_L3_OFFSET_SHIFT;