Hi Willem, I have a question about the function dev_validate_header used in af_packet.c. Can you help me? Thanks!
I see when the length of the data is smaller than hard_header_len, and when the user is "capable" enough, the function will accept it and pad it with 0s, without validating the header with header_ops->validate. But I think if the driver is able to accept variable-length LL headers, shouldn't we just pass the data to header_ops->validate and let it check the header's validity, and then just pass the validated data to the driver for transmission? Why when the user is "capable" enough, can it bypass the header_ops->validate check? And why do we need to pad the data with 0s? Won't this make the driver confused about the real length of the data? Thank you for your help! Xie