Пример #1
0
static void mpls_header_init(struct proto_hdr *hdr)
{
	proto_lower_default_add(hdr, PROTO_ETH);

	proto_header_fields_add(hdr, mpls_fields, array_size(mpls_fields));

	proto_hdr_field_set_default_be32(hdr, MPLS_LAST, 1);
}
Пример #2
0
static void ipv6_header_init(struct proto_hdr *hdr)
{
	struct dev_io *dev = proto_dev_get();

	/* In case of tun interface we do not need to create Ethernet header */
	if (dev_io_is_netdev(dev) && device_type(dev_io_name_get(dev)) != ARPHRD_NONE)
		proto_lower_default_add(hdr, PROTO_ETH);

	proto_header_fields_add(hdr, ipv6_fields, array_size(ipv6_fields));

	proto_hdr_field_set_default_be32(hdr, IP6_VER, 6);
	proto_hdr_field_set_default_dev_ipv6(hdr, IP6_SADDR);
}
Пример #3
0
static void mpls_set_next_proto(struct proto_hdr *hdr, enum proto_id pid)
{
	if (pid == PROTO_MPLS)
		proto_hdr_field_set_default_be32(hdr, MPLS_LAST, 0);
}