Q: What is "packet type ID"? In linxu/if_ether.h I found this struct:
struct ethhdr {
    unsigned char   h_dest[ETH_ALEN];   /* destination eth addr */
    unsigned char   h_source[ETH_ALEN]; /* source ether addr    */
    __be16          h_proto;        /* packet type ID field */
} __attribute__((packed));

What is "packet type ID field" for? I mean, what kind of ID's it contains and where can I get them?

A: It's the type of an Ethernet frame in big endian.
Example values
Related question
