ksz9477_acl_update_linkage(9)
π ksz9477_acl_update_linkage(9) β the Kernel API Manual one
okay so bestie, welcome to the glow-up page for ksz9477_acl_update_linkage, straight out of the Kernel API Manual β¨ this one's a lil function that fixes up your RuleSet linkage after you move an ACL entry around, and honestly it's giving "quiet hero of the ACL table" energy π
β¨ NAME β¨
ksz9477_acl_update_linkage β Update the RuleSet linkage for an ACL entry after a move operation.
like, you moved the entry, and now somebody's gotta update the linkage bits. that somebody is this function π«Ά
πΈ SYNOPSIS πΈ
int ksz9477_acl_update_linkage (struct ksz_device *dev , u8 *entry , u16
old_idx , u16 new_idx );
π¦ ARGUMENTS π¦
devβ Pointer to theksz_device. the whole device situation πentryβ Pointer to the ACL entry array. the actual entry you're shuffling around β¨old_idxβ The original index of the ACL entry before moving. where it was πnew_idxβ The new index of the ACL entry after moving. where it's going πββοΈ
π DESCRIPTION π
So this function updates the RuleSet linkage bits for an ACL entry when it gets moved from one position to another in the ACL table. main character move, literally π
The RuleSet linkage is represented by two 8-bit registers, which are combined into a 16-bit value for easier manipulation β yes, they said "easier manipulation," and honestly slay for that π
The linkage bits are shifted based on the difference between old_idx and new_idx. and if any bits are lost during the shift operation, an error is returned. not me losing bits π no cap, that's the whole vibe check this function does.
π NOTE π
Fragmentation within a RuleSet is not supported. Hence, entries must be moved as complete blocks, maintaining the integrity of the RuleSet.
fr fr, no fragmenting, bestie β whole blocks only, keep that RuleSet integrity intact π§
β RETURN β
0 on success, or -EINVAL if any RuleSet linkage bits are lost during the move. that's it, that's the tea π
π₯ SEE ALSO π₯
Kernel file ./drivers/net/dsa/microchip/ksz9477_acl.c β go read the source, iykyk π
ksz9477_dump_acl_index(9)ksz9477_dump_acl(9)ksz9477_acl_is_valid_matching_rule(9)ksz9477_acl_get_cont_entr(9)ksz9477_validate_and_get_src_count(9)ksz9477_move_entries_downwards(9)ksz9477_move_entries_upwards(9)ksz9477_acl_move_entries(9)ksz9477_get_next_block_start(9)ksz9477_swap_acl_blocks(9)ksz9477_sort_acl_entr_no_back(9)ksz9477_sort_acl_entries(9)ksz9477_acl_wait_ready(9)ksz9477_acl_entry_write(9)ksz9477_acl_port_enable(9)ksz9477_acl_port_disable(9)ksz9477_acl_write_list(9)ksz9477_acl_remove_entries(9)ksz9477_port_acl_init(9)ksz9477_port_acl_free(9)ksz9477_acl_set_reg(9)ksz9477_acl_matching_rule_cfg_l2(9)ksz9477_acl_action_rule_cfg(9)ksz9477_acl_processing_rule_set_action(9)ksz9477_acl_processing_rule_add_match(9)ksz9477_acl_get_init_entry(9)ksz9477_acl_match_process_l2(9)
okay that's the whole page, bestie β this gem lives in ./drivers/net/dsa/microchip and it's dated October 2026, so like, future iconic behavior π catch you in the next man page! πΈππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms