Lines Matching refs:rec

263 			   const struct aq_mss_ingress_prectlf_record *rec,  in set_ingress_prectlf_record()  argument
273 packed_record[0] = rec->sa_da[0] & 0xFFFF; in set_ingress_prectlf_record()
274 packed_record[1] = (rec->sa_da[0] >> 16) & 0xFFFF; in set_ingress_prectlf_record()
275 packed_record[2] = rec->sa_da[1] & 0xFFFF; in set_ingress_prectlf_record()
276 packed_record[3] = rec->eth_type & 0xFFFF; in set_ingress_prectlf_record()
277 packed_record[4] = rec->match_mask & 0xFFFF; in set_ingress_prectlf_record()
278 packed_record[5] = rec->match_type & 0xF; in set_ingress_prectlf_record()
279 packed_record[5] |= (rec->action & 0x1) << 4; in set_ingress_prectlf_record()
287 const struct aq_mss_ingress_prectlf_record *rec, in aq_mss_set_ingress_prectlf_record() argument
290 return AQ_API_CALL_SAFE(set_ingress_prectlf_record, hw, rec, in aq_mss_set_ingress_prectlf_record()
295 struct aq_mss_ingress_prectlf_record *rec, in get_ingress_prectlf_record() argument
324 rec->sa_da[0] = packed_record[0]; in get_ingress_prectlf_record()
325 rec->sa_da[0] |= packed_record[1] << 16; in get_ingress_prectlf_record()
327 rec->sa_da[1] = packed_record[2]; in get_ingress_prectlf_record()
329 rec->eth_type = packed_record[3]; in get_ingress_prectlf_record()
331 rec->match_mask = packed_record[4]; in get_ingress_prectlf_record()
333 rec->match_type = packed_record[5] & 0xF; in get_ingress_prectlf_record()
335 rec->action = (packed_record[5] >> 4) & 0x1; in get_ingress_prectlf_record()
341 struct aq_mss_ingress_prectlf_record *rec, in aq_mss_get_ingress_prectlf_record() argument
344 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_prectlf_record()
346 return AQ_API_CALL_SAFE(get_ingress_prectlf_record, hw, rec, in aq_mss_get_ingress_prectlf_record()
352 const struct aq_mss_ingress_preclass_record *rec, in set_ingress_preclass_record() argument
362 packed_record[0] = rec->sci[0] & 0xFFFF; in set_ingress_preclass_record()
363 packed_record[1] = (rec->sci[0] >> 16) & 0xFFFF; in set_ingress_preclass_record()
365 packed_record[2] = rec->sci[1] & 0xFFFF; in set_ingress_preclass_record()
366 packed_record[3] = (rec->sci[1] >> 16) & 0xFFFF; in set_ingress_preclass_record()
368 packed_record[4] = rec->tci & 0xFF; in set_ingress_preclass_record()
370 packed_record[4] |= (rec->encr_offset & 0xFF) << 8; in set_ingress_preclass_record()
372 packed_record[5] = rec->eth_type & 0xFFFF; in set_ingress_preclass_record()
374 packed_record[6] = rec->snap[0] & 0xFFFF; in set_ingress_preclass_record()
375 packed_record[7] = (rec->snap[0] >> 16) & 0xFFFF; in set_ingress_preclass_record()
377 packed_record[8] = rec->snap[1] & 0xFF; in set_ingress_preclass_record()
379 packed_record[8] |= (rec->llc & 0xFF) << 8; in set_ingress_preclass_record()
380 packed_record[9] = (rec->llc >> 8) & 0xFFFF; in set_ingress_preclass_record()
382 packed_record[10] = rec->mac_sa[0] & 0xFFFF; in set_ingress_preclass_record()
383 packed_record[11] = (rec->mac_sa[0] >> 16) & 0xFFFF; in set_ingress_preclass_record()
385 packed_record[12] = rec->mac_sa[1] & 0xFFFF; in set_ingress_preclass_record()
387 packed_record[13] = rec->mac_da[0] & 0xFFFF; in set_ingress_preclass_record()
388 packed_record[14] = (rec->mac_da[0] >> 16) & 0xFFFF; in set_ingress_preclass_record()
390 packed_record[15] = rec->mac_da[1] & 0xFFFF; in set_ingress_preclass_record()
392 packed_record[16] = rec->lpbk_packet & 0x1; in set_ingress_preclass_record()
394 packed_record[16] |= (rec->an_mask & 0x3) << 1; in set_ingress_preclass_record()
396 packed_record[16] |= (rec->tci_mask & 0x3F) << 3; in set_ingress_preclass_record()
398 packed_record[16] |= (rec->sci_mask & 0x7F) << 9; in set_ingress_preclass_record()
399 packed_record[17] = (rec->sci_mask >> 7) & 0x1; in set_ingress_preclass_record()
401 packed_record[17] |= (rec->eth_type_mask & 0x3) << 1; in set_ingress_preclass_record()
403 packed_record[17] |= (rec->snap_mask & 0x1F) << 3; in set_ingress_preclass_record()
405 packed_record[17] |= (rec->llc_mask & 0x7) << 8; in set_ingress_preclass_record()
407 packed_record[17] |= (rec->_802_2_encapsulate & 0x1) << 11; in set_ingress_preclass_record()
409 packed_record[17] |= (rec->sa_mask & 0xF) << 12; in set_ingress_preclass_record()
410 packed_record[18] = (rec->sa_mask >> 4) & 0x3; in set_ingress_preclass_record()
412 packed_record[18] |= (rec->da_mask & 0x3F) << 2; in set_ingress_preclass_record()
414 packed_record[18] |= (rec->lpbk_mask & 0x1) << 8; in set_ingress_preclass_record()
416 packed_record[18] |= (rec->sc_idx & 0x1F) << 9; in set_ingress_preclass_record()
418 packed_record[18] |= (rec->proc_dest & 0x1) << 14; in set_ingress_preclass_record()
420 packed_record[18] |= (rec->action & 0x1) << 15; in set_ingress_preclass_record()
421 packed_record[19] = (rec->action >> 1) & 0x1; in set_ingress_preclass_record()
423 packed_record[19] |= (rec->ctrl_unctrl & 0x1) << 1; in set_ingress_preclass_record()
425 packed_record[19] |= (rec->sci_from_table & 0x1) << 2; in set_ingress_preclass_record()
427 packed_record[19] |= (rec->reserved & 0xF) << 3; in set_ingress_preclass_record()
429 packed_record[19] |= (rec->valid & 0x1) << 7; in set_ingress_preclass_record()
437 const struct aq_mss_ingress_preclass_record *rec, in aq_mss_set_ingress_preclass_record() argument
440 int err = AQ_API_CALL_SAFE(set_ingress_preclass_record, hw, rec, in aq_mss_set_ingress_preclass_record()
450 struct aq_mss_ingress_preclass_record *rec, in get_ingress_preclass_record() argument
476 rec->sci[0] = packed_record[0]; in get_ingress_preclass_record()
477 rec->sci[0] |= packed_record[1] << 16; in get_ingress_preclass_record()
479 rec->sci[1] = packed_record[2]; in get_ingress_preclass_record()
480 rec->sci[1] |= packed_record[3] << 16; in get_ingress_preclass_record()
482 rec->tci = packed_record[4] & 0xFF; in get_ingress_preclass_record()
484 rec->encr_offset = (packed_record[4] >> 8) & 0xFF; in get_ingress_preclass_record()
486 rec->eth_type = packed_record[5]; in get_ingress_preclass_record()
488 rec->snap[0] = packed_record[6]; in get_ingress_preclass_record()
489 rec->snap[0] |= packed_record[7] << 16; in get_ingress_preclass_record()
491 rec->snap[1] = packed_record[8] & 0xFF; in get_ingress_preclass_record()
493 rec->llc = (packed_record[8] >> 8) & 0xFF; in get_ingress_preclass_record()
494 rec->llc |= packed_record[9] << 8; in get_ingress_preclass_record()
496 rec->mac_sa[0] = packed_record[10]; in get_ingress_preclass_record()
497 rec->mac_sa[0] |= packed_record[11] << 16; in get_ingress_preclass_record()
499 rec->mac_sa[1] = packed_record[12]; in get_ingress_preclass_record()
501 rec->mac_da[0] = packed_record[13]; in get_ingress_preclass_record()
502 rec->mac_da[0] |= packed_record[14] << 16; in get_ingress_preclass_record()
504 rec->mac_da[1] = packed_record[15]; in get_ingress_preclass_record()
506 rec->lpbk_packet = packed_record[16] & 0x1; in get_ingress_preclass_record()
508 rec->an_mask = (packed_record[16] >> 1) & 0x3; in get_ingress_preclass_record()
510 rec->tci_mask = (packed_record[16] >> 3) & 0x3F; in get_ingress_preclass_record()
512 rec->sci_mask = (packed_record[16] >> 9) & 0x7F; in get_ingress_preclass_record()
513 rec->sci_mask |= (packed_record[17] & 0x1) << 7; in get_ingress_preclass_record()
515 rec->eth_type_mask = (packed_record[17] >> 1) & 0x3; in get_ingress_preclass_record()
517 rec->snap_mask = (packed_record[17] >> 3) & 0x1F; in get_ingress_preclass_record()
519 rec->llc_mask = (packed_record[17] >> 8) & 0x7; in get_ingress_preclass_record()
521 rec->_802_2_encapsulate = (packed_record[17] >> 11) & 0x1; in get_ingress_preclass_record()
523 rec->sa_mask = (packed_record[17] >> 12) & 0xF; in get_ingress_preclass_record()
524 rec->sa_mask |= (packed_record[18] & 0x3) << 4; in get_ingress_preclass_record()
526 rec->da_mask = (packed_record[18] >> 2) & 0x3F; in get_ingress_preclass_record()
528 rec->lpbk_mask = (packed_record[18] >> 8) & 0x1; in get_ingress_preclass_record()
530 rec->sc_idx = (packed_record[18] >> 9) & 0x1F; in get_ingress_preclass_record()
532 rec->proc_dest = (packed_record[18] >> 14) & 0x1; in get_ingress_preclass_record()
534 rec->action = (packed_record[18] >> 15) & 0x1; in get_ingress_preclass_record()
535 rec->action |= (packed_record[19] & 0x1) << 1; in get_ingress_preclass_record()
537 rec->ctrl_unctrl = (packed_record[19] >> 1) & 0x1; in get_ingress_preclass_record()
539 rec->sci_from_table = (packed_record[19] >> 2) & 0x1; in get_ingress_preclass_record()
541 rec->reserved = (packed_record[19] >> 3) & 0xF; in get_ingress_preclass_record()
543 rec->valid = (packed_record[19] >> 7) & 0x1; in get_ingress_preclass_record()
549 struct aq_mss_ingress_preclass_record *rec, in aq_mss_get_ingress_preclass_record() argument
552 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_preclass_record()
554 return AQ_API_CALL_SAFE(get_ingress_preclass_record, hw, rec, in aq_mss_get_ingress_preclass_record()
559 const struct aq_mss_ingress_sc_record *rec, in set_ingress_sc_record() argument
569 packed_record[0] = rec->stop_time & 0xFFFF; in set_ingress_sc_record()
570 packed_record[1] = (rec->stop_time >> 16) & 0xFFFF; in set_ingress_sc_record()
572 packed_record[2] = rec->start_time & 0xFFFF; in set_ingress_sc_record()
573 packed_record[3] = (rec->start_time >> 16) & 0xFFFF; in set_ingress_sc_record()
575 packed_record[4] = rec->validate_frames & 0x3; in set_ingress_sc_record()
577 packed_record[4] |= (rec->replay_protect & 0x1) << 2; in set_ingress_sc_record()
579 packed_record[4] |= (rec->anti_replay_window & 0x1FFF) << 3; in set_ingress_sc_record()
580 packed_record[5] = (rec->anti_replay_window >> 13) & 0xFFFF; in set_ingress_sc_record()
581 packed_record[6] = (rec->anti_replay_window >> 29) & 0x7; in set_ingress_sc_record()
583 packed_record[6] |= (rec->receiving & 0x1) << 3; in set_ingress_sc_record()
585 packed_record[6] |= (rec->fresh & 0x1) << 4; in set_ingress_sc_record()
587 packed_record[6] |= (rec->an_rol & 0x1) << 5; in set_ingress_sc_record()
589 packed_record[6] |= (rec->reserved & 0x3FF) << 6; in set_ingress_sc_record()
590 packed_record[7] = (rec->reserved >> 10) & 0x7FFF; in set_ingress_sc_record()
592 packed_record[7] |= (rec->valid & 0x1) << 15; in set_ingress_sc_record()
599 const struct aq_mss_ingress_sc_record *rec, in aq_mss_set_ingress_sc_record() argument
602 int err = AQ_API_CALL_SAFE(set_ingress_sc_record, hw, rec, table_index); in aq_mss_set_ingress_sc_record()
610 struct aq_mss_ingress_sc_record *rec, in get_ingress_sc_record() argument
624 rec->stop_time = packed_record[0]; in get_ingress_sc_record()
625 rec->stop_time |= packed_record[1] << 16; in get_ingress_sc_record()
627 rec->start_time = packed_record[2]; in get_ingress_sc_record()
628 rec->start_time |= packed_record[3] << 16; in get_ingress_sc_record()
630 rec->validate_frames = packed_record[4] & 0x3; in get_ingress_sc_record()
632 rec->replay_protect = (packed_record[4] >> 2) & 0x1; in get_ingress_sc_record()
634 rec->anti_replay_window = (packed_record[4] >> 3) & 0x1FFF; in get_ingress_sc_record()
635 rec->anti_replay_window |= packed_record[5] << 13; in get_ingress_sc_record()
636 rec->anti_replay_window |= (packed_record[6] & 0x7) << 29; in get_ingress_sc_record()
638 rec->receiving = (packed_record[6] >> 3) & 0x1; in get_ingress_sc_record()
640 rec->fresh = (packed_record[6] >> 4) & 0x1; in get_ingress_sc_record()
642 rec->an_rol = (packed_record[6] >> 5) & 0x1; in get_ingress_sc_record()
644 rec->reserved = (packed_record[6] >> 6) & 0x3FF; in get_ingress_sc_record()
645 rec->reserved |= (packed_record[7] & 0x7FFF) << 10; in get_ingress_sc_record()
647 rec->valid = (packed_record[7] >> 15) & 0x1; in get_ingress_sc_record()
653 struct aq_mss_ingress_sc_record *rec, in aq_mss_get_ingress_sc_record() argument
656 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_sc_record()
658 return AQ_API_CALL_SAFE(get_ingress_sc_record, hw, rec, table_index); in aq_mss_get_ingress_sc_record()
662 const struct aq_mss_ingress_sa_record *rec, in set_ingress_sa_record() argument
672 packed_record[0] = rec->stop_time & 0xFFFF; in set_ingress_sa_record()
673 packed_record[1] = (rec->stop_time >> 16) & 0xFFFF; in set_ingress_sa_record()
675 packed_record[2] = rec->start_time & 0xFFFF; in set_ingress_sa_record()
676 packed_record[3] = (rec->start_time >> 16) & 0xFFFF; in set_ingress_sa_record()
678 packed_record[4] = rec->next_pn & 0xFFFF; in set_ingress_sa_record()
679 packed_record[5] = (rec->next_pn >> 16) & 0xFFFF; in set_ingress_sa_record()
681 packed_record[6] = rec->sat_nextpn & 0x1; in set_ingress_sa_record()
683 packed_record[6] |= (rec->in_use & 0x1) << 1; in set_ingress_sa_record()
685 packed_record[6] |= (rec->fresh & 0x1) << 2; in set_ingress_sa_record()
687 packed_record[6] |= (rec->reserved & 0x1FFF) << 3; in set_ingress_sa_record()
688 packed_record[7] = (rec->reserved >> 13) & 0x7FFF; in set_ingress_sa_record()
690 packed_record[7] |= (rec->valid & 0x1) << 15; in set_ingress_sa_record()
697 const struct aq_mss_ingress_sa_record *rec, in aq_mss_set_ingress_sa_record() argument
700 int err = AQ_API_CALL_SAFE(set_ingress_sa_record, hw, rec, table_index); in aq_mss_set_ingress_sa_record()
708 struct aq_mss_ingress_sa_record *rec, in get_ingress_sa_record() argument
722 rec->stop_time = packed_record[0]; in get_ingress_sa_record()
723 rec->stop_time |= packed_record[1] << 16; in get_ingress_sa_record()
725 rec->start_time = packed_record[2]; in get_ingress_sa_record()
726 rec->start_time |= packed_record[3] << 16; in get_ingress_sa_record()
728 rec->next_pn = packed_record[4]; in get_ingress_sa_record()
729 rec->next_pn |= packed_record[5] << 16; in get_ingress_sa_record()
731 rec->sat_nextpn = packed_record[6] & 0x1; in get_ingress_sa_record()
733 rec->in_use = (packed_record[6] >> 1) & 0x1; in get_ingress_sa_record()
735 rec->fresh = (packed_record[6] >> 2) & 0x1; in get_ingress_sa_record()
737 rec->reserved = (packed_record[6] >> 3) & 0x1FFF; in get_ingress_sa_record()
738 rec->reserved |= (packed_record[7] & 0x7FFF) << 13; in get_ingress_sa_record()
740 rec->valid = (packed_record[7] >> 15) & 0x1; in get_ingress_sa_record()
746 struct aq_mss_ingress_sa_record *rec, in aq_mss_get_ingress_sa_record() argument
749 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_sa_record()
751 return AQ_API_CALL_SAFE(get_ingress_sa_record, hw, rec, table_index); in aq_mss_get_ingress_sa_record()
756 const struct aq_mss_ingress_sakey_record *rec, in set_ingress_sakey_record() argument
766 packed_record[0] = rec->key[0] & 0xFFFF; in set_ingress_sakey_record()
767 packed_record[1] = (rec->key[0] >> 16) & 0xFFFF; in set_ingress_sakey_record()
769 packed_record[2] = rec->key[1] & 0xFFFF; in set_ingress_sakey_record()
770 packed_record[3] = (rec->key[1] >> 16) & 0xFFFF; in set_ingress_sakey_record()
772 packed_record[4] = rec->key[2] & 0xFFFF; in set_ingress_sakey_record()
773 packed_record[5] = (rec->key[2] >> 16) & 0xFFFF; in set_ingress_sakey_record()
775 packed_record[6] = rec->key[3] & 0xFFFF; in set_ingress_sakey_record()
776 packed_record[7] = (rec->key[3] >> 16) & 0xFFFF; in set_ingress_sakey_record()
778 packed_record[8] = rec->key[4] & 0xFFFF; in set_ingress_sakey_record()
779 packed_record[9] = (rec->key[4] >> 16) & 0xFFFF; in set_ingress_sakey_record()
781 packed_record[10] = rec->key[5] & 0xFFFF; in set_ingress_sakey_record()
782 packed_record[11] = (rec->key[5] >> 16) & 0xFFFF; in set_ingress_sakey_record()
784 packed_record[12] = rec->key[6] & 0xFFFF; in set_ingress_sakey_record()
785 packed_record[13] = (rec->key[6] >> 16) & 0xFFFF; in set_ingress_sakey_record()
787 packed_record[14] = rec->key[7] & 0xFFFF; in set_ingress_sakey_record()
788 packed_record[15] = (rec->key[7] >> 16) & 0xFFFF; in set_ingress_sakey_record()
790 packed_record[16] = rec->key_len & 0x3; in set_ingress_sakey_record()
798 const struct aq_mss_ingress_sakey_record *rec, in aq_mss_set_ingress_sakey_record() argument
801 int err = AQ_API_CALL_SAFE(set_ingress_sakey_record, hw, rec, in aq_mss_set_ingress_sakey_record()
810 struct aq_mss_ingress_sakey_record *rec, in get_ingress_sakey_record() argument
825 rec->key[0] = packed_record[0]; in get_ingress_sakey_record()
826 rec->key[0] |= packed_record[1] << 16; in get_ingress_sakey_record()
828 rec->key[1] = packed_record[2]; in get_ingress_sakey_record()
829 rec->key[1] |= packed_record[3] << 16; in get_ingress_sakey_record()
831 rec->key[2] = packed_record[4]; in get_ingress_sakey_record()
832 rec->key[2] |= packed_record[5] << 16; in get_ingress_sakey_record()
834 rec->key[3] = packed_record[6]; in get_ingress_sakey_record()
835 rec->key[3] |= packed_record[7] << 16; in get_ingress_sakey_record()
837 rec->key[4] = packed_record[8]; in get_ingress_sakey_record()
838 rec->key[4] |= packed_record[9] << 16; in get_ingress_sakey_record()
840 rec->key[5] = packed_record[10]; in get_ingress_sakey_record()
841 rec->key[5] |= packed_record[11] << 16; in get_ingress_sakey_record()
843 rec->key[6] = packed_record[12]; in get_ingress_sakey_record()
844 rec->key[6] |= packed_record[13] << 16; in get_ingress_sakey_record()
846 rec->key[7] = packed_record[14]; in get_ingress_sakey_record()
847 rec->key[7] |= packed_record[15] << 16; in get_ingress_sakey_record()
849 rec->key_len = packed_record[16] & 0x3; in get_ingress_sakey_record()
855 struct aq_mss_ingress_sakey_record *rec, in aq_mss_get_ingress_sakey_record() argument
858 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_sakey_record()
860 return AQ_API_CALL_SAFE(get_ingress_sakey_record, hw, rec, table_index); in aq_mss_get_ingress_sakey_record()
865 const struct aq_mss_ingress_postclass_record *rec, in set_ingress_postclass_record() argument
875 packed_record[0] = rec->byte0 & 0xFF; in set_ingress_postclass_record()
877 packed_record[0] |= (rec->byte1 & 0xFF) << 8; in set_ingress_postclass_record()
879 packed_record[1] = rec->byte2 & 0xFF; in set_ingress_postclass_record()
881 packed_record[1] |= (rec->byte3 & 0xFF) << 8; in set_ingress_postclass_record()
883 packed_record[2] = rec->eth_type & 0xFFFF; in set_ingress_postclass_record()
885 packed_record[3] = rec->eth_type_valid & 0x1; in set_ingress_postclass_record()
887 packed_record[3] |= (rec->vlan_id & 0xFFF) << 1; in set_ingress_postclass_record()
889 packed_record[3] |= (rec->vlan_up & 0x7) << 13; in set_ingress_postclass_record()
891 packed_record[4] = rec->vlan_valid & 0x1; in set_ingress_postclass_record()
893 packed_record[4] |= (rec->sai & 0x1F) << 1; in set_ingress_postclass_record()
895 packed_record[4] |= (rec->sai_hit & 0x1) << 6; in set_ingress_postclass_record()
897 packed_record[4] |= (rec->eth_type_mask & 0xF) << 7; in set_ingress_postclass_record()
899 packed_record[4] |= (rec->byte3_location & 0x1F) << 11; in set_ingress_postclass_record()
900 packed_record[5] = (rec->byte3_location >> 5) & 0x1; in set_ingress_postclass_record()
902 packed_record[5] |= (rec->byte3_mask & 0x3) << 1; in set_ingress_postclass_record()
904 packed_record[5] |= (rec->byte2_location & 0x3F) << 3; in set_ingress_postclass_record()
906 packed_record[5] |= (rec->byte2_mask & 0x3) << 9; in set_ingress_postclass_record()
908 packed_record[5] |= (rec->byte1_location & 0x1F) << 11; in set_ingress_postclass_record()
909 packed_record[6] = (rec->byte1_location >> 5) & 0x1; in set_ingress_postclass_record()
911 packed_record[6] |= (rec->byte1_mask & 0x3) << 1; in set_ingress_postclass_record()
913 packed_record[6] |= (rec->byte0_location & 0x3F) << 3; in set_ingress_postclass_record()
915 packed_record[6] |= (rec->byte0_mask & 0x3) << 9; in set_ingress_postclass_record()
917 packed_record[6] |= (rec->eth_type_valid_mask & 0x3) << 11; in set_ingress_postclass_record()
919 packed_record[6] |= (rec->vlan_id_mask & 0x7) << 13; in set_ingress_postclass_record()
920 packed_record[7] = (rec->vlan_id_mask >> 3) & 0x1; in set_ingress_postclass_record()
922 packed_record[7] |= (rec->vlan_up_mask & 0x3) << 1; in set_ingress_postclass_record()
924 packed_record[7] |= (rec->vlan_valid_mask & 0x3) << 3; in set_ingress_postclass_record()
926 packed_record[7] |= (rec->sai_mask & 0x3) << 5; in set_ingress_postclass_record()
928 packed_record[7] |= (rec->sai_hit_mask & 0x3) << 7; in set_ingress_postclass_record()
930 packed_record[7] |= (rec->firstlevel_actions & 0x1) << 9; in set_ingress_postclass_record()
932 packed_record[7] |= (rec->secondlevel_actions & 0x1) << 10; in set_ingress_postclass_record()
934 packed_record[7] |= (rec->reserved & 0xF) << 11; in set_ingress_postclass_record()
936 packed_record[7] |= (rec->valid & 0x1) << 15; in set_ingress_postclass_record()
944 const struct aq_mss_ingress_postclass_record *rec, in aq_mss_set_ingress_postclass_record() argument
947 return AQ_API_CALL_SAFE(set_ingress_postclass_record, hw, rec, in aq_mss_set_ingress_postclass_record()
953 struct aq_mss_ingress_postclass_record *rec, in get_ingress_postclass_record() argument
979 rec->byte0 = packed_record[0] & 0xFF; in get_ingress_postclass_record()
981 rec->byte1 = (packed_record[0] >> 8) & 0xFF; in get_ingress_postclass_record()
983 rec->byte2 = packed_record[1] & 0xFF; in get_ingress_postclass_record()
985 rec->byte3 = (packed_record[1] >> 8) & 0xFF; in get_ingress_postclass_record()
987 rec->eth_type = packed_record[2]; in get_ingress_postclass_record()
989 rec->eth_type_valid = packed_record[3] & 0x1; in get_ingress_postclass_record()
991 rec->vlan_id = (packed_record[3] >> 1) & 0xFFF; in get_ingress_postclass_record()
993 rec->vlan_up = (packed_record[3] >> 13) & 0x7; in get_ingress_postclass_record()
995 rec->vlan_valid = packed_record[4] & 0x1; in get_ingress_postclass_record()
997 rec->sai = (packed_record[4] >> 1) & 0x1F; in get_ingress_postclass_record()
999 rec->sai_hit = (packed_record[4] >> 6) & 0x1; in get_ingress_postclass_record()
1001 rec->eth_type_mask = (packed_record[4] >> 7) & 0xF; in get_ingress_postclass_record()
1003 rec->byte3_location = (packed_record[4] >> 11) & 0x1F; in get_ingress_postclass_record()
1004 rec->byte3_location |= (packed_record[5] & 0x1) << 5; in get_ingress_postclass_record()
1006 rec->byte3_mask = (packed_record[5] >> 1) & 0x3; in get_ingress_postclass_record()
1008 rec->byte2_location = (packed_record[5] >> 3) & 0x3F; in get_ingress_postclass_record()
1010 rec->byte2_mask = (packed_record[5] >> 9) & 0x3; in get_ingress_postclass_record()
1012 rec->byte1_location = (packed_record[5] >> 11) & 0x1F; in get_ingress_postclass_record()
1013 rec->byte1_location |= (packed_record[6] & 0x1) << 5; in get_ingress_postclass_record()
1015 rec->byte1_mask = (packed_record[6] >> 1) & 0x3; in get_ingress_postclass_record()
1017 rec->byte0_location = (packed_record[6] >> 3) & 0x3F; in get_ingress_postclass_record()
1019 rec->byte0_mask = (packed_record[6] >> 9) & 0x3; in get_ingress_postclass_record()
1021 rec->eth_type_valid_mask = (packed_record[6] >> 11) & 0x3; in get_ingress_postclass_record()
1023 rec->vlan_id_mask = (packed_record[6] >> 13) & 0x7; in get_ingress_postclass_record()
1024 rec->vlan_id_mask |= (packed_record[7] & 0x1) << 3; in get_ingress_postclass_record()
1026 rec->vlan_up_mask = (packed_record[7] >> 1) & 0x3; in get_ingress_postclass_record()
1028 rec->vlan_valid_mask = (packed_record[7] >> 3) & 0x3; in get_ingress_postclass_record()
1030 rec->sai_mask = (packed_record[7] >> 5) & 0x3; in get_ingress_postclass_record()
1032 rec->sai_hit_mask = (packed_record[7] >> 7) & 0x3; in get_ingress_postclass_record()
1034 rec->firstlevel_actions = (packed_record[7] >> 9) & 0x1; in get_ingress_postclass_record()
1036 rec->secondlevel_actions = (packed_record[7] >> 10) & 0x1; in get_ingress_postclass_record()
1038 rec->reserved = (packed_record[7] >> 11) & 0xF; in get_ingress_postclass_record()
1040 rec->valid = (packed_record[7] >> 15) & 0x1; in get_ingress_postclass_record()
1046 struct aq_mss_ingress_postclass_record *rec, in aq_mss_get_ingress_postclass_record() argument
1049 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_postclass_record()
1051 return AQ_API_CALL_SAFE(get_ingress_postclass_record, hw, rec, in aq_mss_get_ingress_postclass_record()
1057 const struct aq_mss_ingress_postctlf_record *rec, in set_ingress_postctlf_record() argument
1067 packed_record[0] = rec->sa_da[0] & 0xFFFF; in set_ingress_postctlf_record()
1068 packed_record[1] = (rec->sa_da[0] >> 16) & 0xFFFF; in set_ingress_postctlf_record()
1070 packed_record[2] = rec->sa_da[1] & 0xFFFF; in set_ingress_postctlf_record()
1072 packed_record[3] = rec->eth_type & 0xFFFF; in set_ingress_postctlf_record()
1074 packed_record[4] = rec->match_mask & 0xFFFF; in set_ingress_postctlf_record()
1076 packed_record[5] = rec->match_type & 0xF; in set_ingress_postctlf_record()
1078 packed_record[5] |= (rec->action & 0x1) << 4; in set_ingress_postctlf_record()
1086 const struct aq_mss_ingress_postctlf_record *rec, in aq_mss_set_ingress_postctlf_record() argument
1089 return AQ_API_CALL_SAFE(set_ingress_postctlf_record, hw, rec, in aq_mss_set_ingress_postctlf_record()
1095 struct aq_mss_ingress_postctlf_record *rec, in get_ingress_postctlf_record() argument
1121 rec->sa_da[0] = packed_record[0]; in get_ingress_postctlf_record()
1122 rec->sa_da[0] |= packed_record[1] << 16; in get_ingress_postctlf_record()
1124 rec->sa_da[1] = packed_record[2]; in get_ingress_postctlf_record()
1126 rec->eth_type = packed_record[3]; in get_ingress_postctlf_record()
1128 rec->match_mask = packed_record[4]; in get_ingress_postctlf_record()
1130 rec->match_type = packed_record[5] & 0xF; in get_ingress_postctlf_record()
1132 rec->action = (packed_record[5] >> 4) & 0x1; in get_ingress_postctlf_record()
1138 struct aq_mss_ingress_postctlf_record *rec, in aq_mss_get_ingress_postctlf_record() argument
1141 memset(rec, 0, sizeof(*rec)); in aq_mss_get_ingress_postctlf_record()
1143 return AQ_API_CALL_SAFE(get_ingress_postctlf_record, hw, rec, in aq_mss_get_ingress_postctlf_record()
1148 const struct aq_mss_egress_ctlf_record *rec, in set_egress_ctlf_record() argument
1158 packed_record[0] = rec->sa_da[0] & 0xFFFF; in set_egress_ctlf_record()
1159 packed_record[1] = (rec->sa_da[0] >> 16) & 0xFFFF; in set_egress_ctlf_record()
1161 packed_record[2] = rec->sa_da[1] & 0xFFFF; in set_egress_ctlf_record()
1163 packed_record[3] = rec->eth_type & 0xFFFF; in set_egress_ctlf_record()
1165 packed_record[4] = rec->match_mask & 0xFFFF; in set_egress_ctlf_record()
1167 packed_record[5] = rec->match_type & 0xF; in set_egress_ctlf_record()
1169 packed_record[5] |= (rec->action & 0x1) << 4; in set_egress_ctlf_record()
1176 const struct aq_mss_egress_ctlf_record *rec, in aq_mss_set_egress_ctlf_record() argument
1179 return AQ_API_CALL_SAFE(set_egress_ctlf_record, hw, rec, table_index); in aq_mss_set_egress_ctlf_record()
1183 struct aq_mss_egress_ctlf_record *rec, in get_egress_ctlf_record() argument
1208 rec->sa_da[0] = packed_record[0]; in get_egress_ctlf_record()
1209 rec->sa_da[0] |= packed_record[1] << 16; in get_egress_ctlf_record()
1211 rec->sa_da[1] = packed_record[2]; in get_egress_ctlf_record()
1213 rec->eth_type = packed_record[3]; in get_egress_ctlf_record()
1215 rec->match_mask = packed_record[4]; in get_egress_ctlf_record()
1217 rec->match_type = packed_record[5] & 0xF; in get_egress_ctlf_record()
1219 rec->action = (packed_record[5] >> 4) & 0x1; in get_egress_ctlf_record()
1225 struct aq_mss_egress_ctlf_record *rec, in aq_mss_get_egress_ctlf_record() argument
1228 memset(rec, 0, sizeof(*rec)); in aq_mss_get_egress_ctlf_record()
1230 return AQ_API_CALL_SAFE(get_egress_ctlf_record, hw, rec, table_index); in aq_mss_get_egress_ctlf_record()
1234 const struct aq_mss_egress_class_record *rec, in set_egress_class_record() argument
1244 packed_record[0] = rec->vlan_id & 0xFFF; in set_egress_class_record()
1246 packed_record[0] |= (rec->vlan_up & 0x7) << 12; in set_egress_class_record()
1248 packed_record[0] |= (rec->vlan_valid & 0x1) << 15; in set_egress_class_record()
1250 packed_record[1] = rec->byte3 & 0xFF; in set_egress_class_record()
1252 packed_record[1] |= (rec->byte2 & 0xFF) << 8; in set_egress_class_record()
1254 packed_record[2] = rec->byte1 & 0xFF; in set_egress_class_record()
1256 packed_record[2] |= (rec->byte0 & 0xFF) << 8; in set_egress_class_record()
1258 packed_record[3] = rec->tci & 0xFF; in set_egress_class_record()
1260 packed_record[3] |= (rec->sci[0] & 0xFF) << 8; in set_egress_class_record()
1261 packed_record[4] = (rec->sci[0] >> 8) & 0xFFFF; in set_egress_class_record()
1262 packed_record[5] = (rec->sci[0] >> 24) & 0xFF; in set_egress_class_record()
1264 packed_record[5] |= (rec->sci[1] & 0xFF) << 8; in set_egress_class_record()
1265 packed_record[6] = (rec->sci[1] >> 8) & 0xFFFF; in set_egress_class_record()
1266 packed_record[7] = (rec->sci[1] >> 24) & 0xFF; in set_egress_class_record()
1268 packed_record[7] |= (rec->eth_type & 0xFF) << 8; in set_egress_class_record()
1269 packed_record[8] = (rec->eth_type >> 8) & 0xFF; in set_egress_class_record()
1271 packed_record[8] |= (rec->snap[0] & 0xFF) << 8; in set_egress_class_record()
1272 packed_record[9] = (rec->snap[0] >> 8) & 0xFFFF; in set_egress_class_record()
1273 packed_record[10] = (rec->snap[0] >> 24) & 0xFF; in set_egress_class_record()
1275 packed_record[10] |= (rec->snap[1] & 0xFF) << 8; in set_egress_class_record()
1277 packed_record[11] = rec->llc & 0xFFFF; in set_egress_class_record()
1278 packed_record[12] = (rec->llc >> 16) & 0xFF; in set_egress_class_record()
1280 packed_record[12] |= (rec->mac_sa[0] & 0xFF) << 8; in set_egress_class_record()
1281 packed_record[13] = (rec->mac_sa[0] >> 8) & 0xFFFF; in set_egress_class_record()
1282 packed_record[14] = (rec->mac_sa[0] >> 24) & 0xFF; in set_egress_class_record()
1284 packed_record[14] |= (rec->mac_sa[1] & 0xFF) << 8; in set_egress_class_record()
1285 packed_record[15] = (rec->mac_sa[1] >> 8) & 0xFF; in set_egress_class_record()
1287 packed_record[15] |= (rec->mac_da[0] & 0xFF) << 8; in set_egress_class_record()
1288 packed_record[16] = (rec->mac_da[0] >> 8) & 0xFFFF; in set_egress_class_record()
1289 packed_record[17] = (rec->mac_da[0] >> 24) & 0xFF; in set_egress_class_record()
1291 packed_record[17] |= (rec->mac_da[1] & 0xFF) << 8; in set_egress_class_record()
1292 packed_record[18] = (rec->mac_da[1] >> 8) & 0xFF; in set_egress_class_record()
1294 packed_record[18] |= (rec->pn & 0xFF) << 8; in set_egress_class_record()
1295 packed_record[19] = (rec->pn >> 8) & 0xFFFF; in set_egress_class_record()
1296 packed_record[20] = (rec->pn >> 24) & 0xFF; in set_egress_class_record()
1298 packed_record[20] |= (rec->byte3_location & 0x3F) << 8; in set_egress_class_record()
1300 packed_record[20] |= (rec->byte3_mask & 0x1) << 14; in set_egress_class_record()
1302 packed_record[20] |= (rec->byte2_location & 0x1) << 15; in set_egress_class_record()
1303 packed_record[21] = (rec->byte2_location >> 1) & 0x1F; in set_egress_class_record()
1305 packed_record[21] |= (rec->byte2_mask & 0x1) << 5; in set_egress_class_record()
1307 packed_record[21] |= (rec->byte1_location & 0x3F) << 6; in set_egress_class_record()
1309 packed_record[21] |= (rec->byte1_mask & 0x1) << 12; in set_egress_class_record()
1311 packed_record[21] |= (rec->byte0_location & 0x7) << 13; in set_egress_class_record()
1312 packed_record[22] = (rec->byte0_location >> 3) & 0x7; in set_egress_class_record()
1314 packed_record[22] |= (rec->byte0_mask & 0x1) << 3; in set_egress_class_record()
1316 packed_record[22] |= (rec->vlan_id_mask & 0x3) << 4; in set_egress_class_record()
1318 packed_record[22] |= (rec->vlan_up_mask & 0x1) << 6; in set_egress_class_record()
1320 packed_record[22] |= (rec->vlan_valid_mask & 0x1) << 7; in set_egress_class_record()
1322 packed_record[22] |= (rec->tci_mask & 0xFF) << 8; in set_egress_class_record()
1324 packed_record[23] = rec->sci_mask & 0xFF; in set_egress_class_record()
1326 packed_record[23] |= (rec->eth_type_mask & 0x3) << 8; in set_egress_class_record()
1328 packed_record[23] |= (rec->snap_mask & 0x1F) << 10; in set_egress_class_record()
1330 packed_record[23] |= (rec->llc_mask & 0x1) << 15; in set_egress_class_record()
1331 packed_record[24] = (rec->llc_mask >> 1) & 0x3; in set_egress_class_record()
1333 packed_record[24] |= (rec->sa_mask & 0x3F) << 2; in set_egress_class_record()
1335 packed_record[24] |= (rec->da_mask & 0x3F) << 8; in set_egress_class_record()
1337 packed_record[24] |= (rec->pn_mask & 0x3) << 14; in set_egress_class_record()
1338 packed_record[25] = (rec->pn_mask >> 2) & 0x3; in set_egress_class_record()
1340 packed_record[25] |= (rec->eight02dot2 & 0x1) << 2; in set_egress_class_record()
1342 packed_record[25] |= (rec->tci_sc & 0x1) << 3; in set_egress_class_record()
1344 packed_record[25] |= (rec->tci_87543 & 0x1) << 4; in set_egress_class_record()
1346 packed_record[25] |= (rec->exp_sectag_en & 0x1) << 5; in set_egress_class_record()
1348 packed_record[25] |= (rec->sc_idx & 0x1F) << 6; in set_egress_class_record()
1350 packed_record[25] |= (rec->sc_sa & 0x3) << 11; in set_egress_class_record()
1352 packed_record[25] |= (rec->debug & 0x1) << 13; in set_egress_class_record()
1354 packed_record[25] |= (rec->action & 0x3) << 14; in set_egress_class_record()
1356 packed_record[26] = (rec->valid & 0x1) << 3; in set_egress_class_record()
1363 const struct aq_mss_egress_class_record *rec, in aq_mss_set_egress_class_record() argument
1366 return AQ_API_CALL_SAFE(set_egress_class_record, hw, rec, table_index); in aq_mss_set_egress_class_record()
1370 struct aq_mss_egress_class_record *rec, in get_egress_class_record() argument
1395 rec->vlan_id = packed_record[0] & 0xFFF; in get_egress_class_record()
1397 rec->vlan_up = (packed_record[0] >> 12) & 0x7; in get_egress_class_record()
1399 rec->vlan_valid = (packed_record[0] >> 15) & 0x1; in get_egress_class_record()
1401 rec->byte3 = packed_record[1] & 0xFF; in get_egress_class_record()
1403 rec->byte2 = (packed_record[1] >> 8) & 0xFF; in get_egress_class_record()
1405 rec->byte1 = packed_record[2] & 0xFF; in get_egress_class_record()
1407 rec->byte0 = (packed_record[2] >> 8) & 0xFF; in get_egress_class_record()
1409 rec->tci = packed_record[3] & 0xFF; in get_egress_class_record()
1411 rec->sci[0] = (packed_record[3] >> 8) & 0xFF; in get_egress_class_record()
1412 rec->sci[0] |= packed_record[4] << 8; in get_egress_class_record()
1413 rec->sci[0] |= (packed_record[5] & 0xFF) << 24; in get_egress_class_record()
1415 rec->sci[1] = (packed_record[5] >> 8) & 0xFF; in get_egress_class_record()
1416 rec->sci[1] |= packed_record[6] << 8; in get_egress_class_record()
1417 rec->sci[1] |= (packed_record[7] & 0xFF) << 24; in get_egress_class_record()
1419 rec->eth_type = (packed_record[7] >> 8) & 0xFF; in get_egress_class_record()
1420 rec->eth_type |= (packed_record[8] & 0xFF) << 8; in get_egress_class_record()
1422 rec->snap[0] = (packed_record[8] >> 8) & 0xFF; in get_egress_class_record()
1423 rec->snap[0] |= packed_record[9] << 8; in get_egress_class_record()
1424 rec->snap[0] |= (packed_record[10] & 0xFF) << 24; in get_egress_class_record()
1426 rec->snap[1] = (packed_record[10] >> 8) & 0xFF; in get_egress_class_record()
1428 rec->llc = packed_record[11]; in get_egress_class_record()
1429 rec->llc |= (packed_record[12] & 0xFF) << 16; in get_egress_class_record()
1431 rec->mac_sa[0] = (packed_record[12] >> 8) & 0xFF; in get_egress_class_record()
1432 rec->mac_sa[0] |= packed_record[13] << 8; in get_egress_class_record()
1433 rec->mac_sa[0] |= (packed_record[14] & 0xFF) << 24; in get_egress_class_record()
1435 rec->mac_sa[1] = (packed_record[14] >> 8) & 0xFF; in get_egress_class_record()
1436 rec->mac_sa[1] |= (packed_record[15] & 0xFF) << 8; in get_egress_class_record()
1438 rec->mac_da[0] = (packed_record[15] >> 8) & 0xFF; in get_egress_class_record()
1439 rec->mac_da[0] |= packed_record[16] << 8; in get_egress_class_record()
1440 rec->mac_da[0] |= (packed_record[17] & 0xFF) << 24; in get_egress_class_record()
1442 rec->mac_da[1] = (packed_record[17] >> 8) & 0xFF; in get_egress_class_record()
1443 rec->mac_da[1] |= (packed_record[18] & 0xFF) << 8; in get_egress_class_record()
1445 rec->pn = (packed_record[18] >> 8) & 0xFF; in get_egress_class_record()
1446 rec->pn |= packed_record[19] << 8; in get_egress_class_record()
1447 rec->pn |= (packed_record[20] & 0xFF) << 24; in get_egress_class_record()
1449 rec->byte3_location = (packed_record[20] >> 8) & 0x3F; in get_egress_class_record()
1451 rec->byte3_mask = (packed_record[20] >> 14) & 0x1; in get_egress_class_record()
1453 rec->byte2_location = (packed_record[20] >> 15) & 0x1; in get_egress_class_record()
1454 rec->byte2_location |= (packed_record[21] & 0x1F) << 1; in get_egress_class_record()
1456 rec->byte2_mask = (packed_record[21] >> 5) & 0x1; in get_egress_class_record()
1458 rec->byte1_location = (packed_record[21] >> 6) & 0x3F; in get_egress_class_record()
1460 rec->byte1_mask = (packed_record[21] >> 12) & 0x1; in get_egress_class_record()
1462 rec->byte0_location = (packed_record[21] >> 13) & 0x7; in get_egress_class_record()
1463 rec->byte0_location |= (packed_record[22] & 0x7) << 3; in get_egress_class_record()
1465 rec->byte0_mask = (packed_record[22] >> 3) & 0x1; in get_egress_class_record()
1467 rec->vlan_id_mask = (packed_record[22] >> 4) & 0x3; in get_egress_class_record()
1469 rec->vlan_up_mask = (packed_record[22] >> 6) & 0x1; in get_egress_class_record()
1471 rec->vlan_valid_mask = (packed_record[22] >> 7) & 0x1; in get_egress_class_record()
1473 rec->tci_mask = (packed_record[22] >> 8) & 0xFF; in get_egress_class_record()
1475 rec->sci_mask = packed_record[23] & 0xFF; in get_egress_class_record()
1477 rec->eth_type_mask = (packed_record[23] >> 8) & 0x3; in get_egress_class_record()
1479 rec->snap_mask = (packed_record[23] >> 10) & 0x1F; in get_egress_class_record()
1481 rec->llc_mask = (packed_record[23] >> 15) & 0x1; in get_egress_class_record()
1482 rec->llc_mask |= (packed_record[24] & 0x3) << 1; in get_egress_class_record()
1484 rec->sa_mask = (packed_record[24] >> 2) & 0x3F; in get_egress_class_record()
1486 rec->da_mask = (packed_record[24] >> 8) & 0x3F; in get_egress_class_record()
1488 rec->pn_mask = (packed_record[24] >> 14) & 0x3; in get_egress_class_record()
1489 rec->pn_mask |= (packed_record[25] & 0x3) << 2; in get_egress_class_record()
1491 rec->eight02dot2 = (packed_record[25] >> 2) & 0x1; in get_egress_class_record()
1493 rec->tci_sc = (packed_record[25] >> 3) & 0x1; in get_egress_class_record()
1495 rec->tci_87543 = (packed_record[25] >> 4) & 0x1; in get_egress_class_record()
1497 rec->exp_sectag_en = (packed_record[25] >> 5) & 0x1; in get_egress_class_record()
1499 rec->sc_idx = (packed_record[25] >> 6) & 0x1F; in get_egress_class_record()
1501 rec->sc_sa = (packed_record[25] >> 11) & 0x3; in get_egress_class_record()
1503 rec->debug = (packed_record[25] >> 13) & 0x1; in get_egress_class_record()
1505 rec->action = (packed_record[25] >> 14) & 0x3; in get_egress_class_record()
1507 rec->valid = (packed_record[26] >> 3) & 0x1; in get_egress_class_record()
1513 struct aq_mss_egress_class_record *rec, in aq_mss_get_egress_class_record() argument
1516 memset(rec, 0, sizeof(*rec)); in aq_mss_get_egress_class_record()
1518 return AQ_API_CALL_SAFE(get_egress_class_record, hw, rec, table_index); in aq_mss_get_egress_class_record()
1522 const struct aq_mss_egress_sc_record *rec, in set_egress_sc_record() argument
1532 packed_record[0] = rec->start_time & 0xFFFF; in set_egress_sc_record()
1533 packed_record[1] = (rec->start_time >> 16) & 0xFFFF; in set_egress_sc_record()
1535 packed_record[2] = rec->stop_time & 0xFFFF; in set_egress_sc_record()
1536 packed_record[3] = (rec->stop_time >> 16) & 0xFFFF; in set_egress_sc_record()
1538 packed_record[4] = rec->curr_an & 0x3; in set_egress_sc_record()
1540 packed_record[4] |= (rec->an_roll & 0x1) << 2; in set_egress_sc_record()
1542 packed_record[4] |= (rec->tci & 0x3F) << 3; in set_egress_sc_record()
1544 packed_record[4] |= (rec->enc_off & 0x7F) << 9; in set_egress_sc_record()
1545 packed_record[5] = (rec->enc_off >> 7) & 0x1; in set_egress_sc_record()
1547 packed_record[5] |= (rec->protect & 0x1) << 1; in set_egress_sc_record()
1549 packed_record[5] |= (rec->recv & 0x1) << 2; in set_egress_sc_record()
1551 packed_record[5] |= (rec->fresh & 0x1) << 3; in set_egress_sc_record()
1553 packed_record[5] |= (rec->sak_len & 0x3) << 4; in set_egress_sc_record()
1555 packed_record[7] = (rec->valid & 0x1) << 15; in set_egress_sc_record()
1562 const struct aq_mss_egress_sc_record *rec, in aq_mss_set_egress_sc_record() argument
1565 return AQ_API_CALL_SAFE(set_egress_sc_record, hw, rec, table_index); in aq_mss_set_egress_sc_record()
1569 struct aq_mss_egress_sc_record *rec, in get_egress_sc_record() argument
1583 rec->start_time = packed_record[0]; in get_egress_sc_record()
1584 rec->start_time |= packed_record[1] << 16; in get_egress_sc_record()
1586 rec->stop_time = packed_record[2]; in get_egress_sc_record()
1587 rec->stop_time |= packed_record[3] << 16; in get_egress_sc_record()
1589 rec->curr_an = packed_record[4] & 0x3; in get_egress_sc_record()
1591 rec->an_roll = (packed_record[4] >> 2) & 0x1; in get_egress_sc_record()
1593 rec->tci = (packed_record[4] >> 3) & 0x3F; in get_egress_sc_record()
1595 rec->enc_off = (packed_record[4] >> 9) & 0x7F; in get_egress_sc_record()
1596 rec->enc_off |= (packed_record[5] & 0x1) << 7; in get_egress_sc_record()
1598 rec->protect = (packed_record[5] >> 1) & 0x1; in get_egress_sc_record()
1600 rec->recv = (packed_record[5] >> 2) & 0x1; in get_egress_sc_record()
1602 rec->fresh = (packed_record[5] >> 3) & 0x1; in get_egress_sc_record()
1604 rec->sak_len = (packed_record[5] >> 4) & 0x3; in get_egress_sc_record()
1606 rec->valid = (packed_record[7] >> 15) & 0x1; in get_egress_sc_record()
1612 struct aq_mss_egress_sc_record *rec, in aq_mss_get_egress_sc_record() argument
1615 memset(rec, 0, sizeof(*rec)); in aq_mss_get_egress_sc_record()
1617 return AQ_API_CALL_SAFE(get_egress_sc_record, hw, rec, table_index); in aq_mss_get_egress_sc_record()
1621 const struct aq_mss_egress_sa_record *rec, in set_egress_sa_record() argument
1631 packed_record[0] = rec->start_time & 0xFFFF; in set_egress_sa_record()
1632 packed_record[1] = (rec->start_time >> 16) & 0xFFFF; in set_egress_sa_record()
1634 packed_record[2] = rec->stop_time & 0xFFFF; in set_egress_sa_record()
1635 packed_record[3] = (rec->stop_time >> 16) & 0xFFFF; in set_egress_sa_record()
1637 packed_record[4] = rec->next_pn & 0xFFFF; in set_egress_sa_record()
1638 packed_record[5] = (rec->next_pn >> 16) & 0xFFFF; in set_egress_sa_record()
1640 packed_record[6] = rec->sat_pn & 0x1; in set_egress_sa_record()
1642 packed_record[6] |= (rec->fresh & 0x1) << 1; in set_egress_sa_record()
1644 packed_record[7] = (rec->valid & 0x1) << 15; in set_egress_sa_record()
1651 const struct aq_mss_egress_sa_record *rec, in aq_mss_set_egress_sa_record() argument
1654 int err = AQ_API_CALL_SAFE(set_egress_sa_record, hw, rec, table_index); in aq_mss_set_egress_sa_record()
1662 struct aq_mss_egress_sa_record *rec, in get_egress_sa_record() argument
1676 rec->start_time = packed_record[0]; in get_egress_sa_record()
1677 rec->start_time |= packed_record[1] << 16; in get_egress_sa_record()
1679 rec->stop_time = packed_record[2]; in get_egress_sa_record()
1680 rec->stop_time |= packed_record[3] << 16; in get_egress_sa_record()
1682 rec->next_pn = packed_record[4]; in get_egress_sa_record()
1683 rec->next_pn |= packed_record[5] << 16; in get_egress_sa_record()
1685 rec->sat_pn = packed_record[6] & 0x1; in get_egress_sa_record()
1687 rec->fresh = (packed_record[6] >> 1) & 0x1; in get_egress_sa_record()
1689 rec->valid = (packed_record[7] >> 15) & 0x1; in get_egress_sa_record()
1695 struct aq_mss_egress_sa_record *rec, in aq_mss_get_egress_sa_record() argument
1698 memset(rec, 0, sizeof(*rec)); in aq_mss_get_egress_sa_record()
1700 return AQ_API_CALL_SAFE(get_egress_sa_record, hw, rec, table_index); in aq_mss_get_egress_sa_record()
1704 const struct aq_mss_egress_sakey_record *rec, in set_egress_sakey_record() argument
1715 packed_record[0] = rec->key[0] & 0xFFFF; in set_egress_sakey_record()
1716 packed_record[1] = (rec->key[0] >> 16) & 0xFFFF; in set_egress_sakey_record()
1718 packed_record[2] = rec->key[1] & 0xFFFF; in set_egress_sakey_record()
1719 packed_record[3] = (rec->key[1] >> 16) & 0xFFFF; in set_egress_sakey_record()
1721 packed_record[4] = rec->key[2] & 0xFFFF; in set_egress_sakey_record()
1722 packed_record[5] = (rec->key[2] >> 16) & 0xFFFF; in set_egress_sakey_record()
1724 packed_record[6] = rec->key[3] & 0xFFFF; in set_egress_sakey_record()
1725 packed_record[7] = (rec->key[3] >> 16) & 0xFFFF; in set_egress_sakey_record()
1727 packed_record[8] = rec->key[4] & 0xFFFF; in set_egress_sakey_record()
1728 packed_record[9] = (rec->key[4] >> 16) & 0xFFFF; in set_egress_sakey_record()
1730 packed_record[10] = rec->key[5] & 0xFFFF; in set_egress_sakey_record()
1731 packed_record[11] = (rec->key[5] >> 16) & 0xFFFF; in set_egress_sakey_record()
1733 packed_record[12] = rec->key[6] & 0xFFFF; in set_egress_sakey_record()
1734 packed_record[13] = (rec->key[6] >> 16) & 0xFFFF; in set_egress_sakey_record()
1736 packed_record[14] = rec->key[7] & 0xFFFF; in set_egress_sakey_record()
1737 packed_record[15] = (rec->key[7] >> 16) & 0xFFFF; in set_egress_sakey_record()
1753 const struct aq_mss_egress_sakey_record *rec, in aq_mss_set_egress_sakey_record() argument
1756 int err = AQ_API_CALL_SAFE(set_egress_sakey_record, hw, rec, in aq_mss_set_egress_sakey_record()
1765 struct aq_mss_egress_sakey_record *rec, in get_egress_sakey_record() argument
1784 rec->key[0] = packed_record[0]; in get_egress_sakey_record()
1785 rec->key[0] |= packed_record[1] << 16; in get_egress_sakey_record()
1787 rec->key[1] = packed_record[2]; in get_egress_sakey_record()
1788 rec->key[1] |= packed_record[3] << 16; in get_egress_sakey_record()
1790 rec->key[2] = packed_record[4]; in get_egress_sakey_record()
1791 rec->key[2] |= packed_record[5] << 16; in get_egress_sakey_record()
1793 rec->key[3] = packed_record[6]; in get_egress_sakey_record()
1794 rec->key[3] |= packed_record[7] << 16; in get_egress_sakey_record()
1796 rec->key[4] = packed_record[8]; in get_egress_sakey_record()
1797 rec->key[4] |= packed_record[9] << 16; in get_egress_sakey_record()
1799 rec->key[5] = packed_record[10]; in get_egress_sakey_record()
1800 rec->key[5] |= packed_record[11] << 16; in get_egress_sakey_record()
1802 rec->key[6] = packed_record[12]; in get_egress_sakey_record()
1803 rec->key[6] |= packed_record[13] << 16; in get_egress_sakey_record()
1805 rec->key[7] = packed_record[14]; in get_egress_sakey_record()
1806 rec->key[7] |= packed_record[15] << 16; in get_egress_sakey_record()
1812 struct aq_mss_egress_sakey_record *rec, in aq_mss_get_egress_sakey_record() argument
1815 memset(rec, 0, sizeof(*rec)); in aq_mss_get_egress_sakey_record()
1817 return AQ_API_CALL_SAFE(get_egress_sakey_record, hw, rec, table_index); in aq_mss_get_egress_sakey_record()