void lwt_print_encap(FILE *fp, struct rtattr *encap_type,
			  struct rtattr *encap)
{
	int et;

	if (!encap_type)
		return;

	et = rta_getattr_u16(encap_type);

	fprintf(fp, " encap %s ", format_encap_type(et));

	switch (et) {
	case LWTUNNEL_ENCAP_MPLS:
		print_encap_mpls(fp, encap);
		break;
	case LWTUNNEL_ENCAP_IP:
		print_encap_ip(fp, encap);
		break;
	case LWTUNNEL_ENCAP_ILA:
		print_encap_ila(fp, encap);
		break;
	case LWTUNNEL_ENCAP_IP6:
		print_encap_ip6(fp, encap);
		break;
	}
}
Exemplo n.º 2
0
static size_t
print_encap(char *op, size_t len, const encap_t* encap)
{
	switch (encap->type) {
	case LWTUNNEL_ENCAP_MPLS:
		return print_encap_mpls(op, len, encap);
	case LWTUNNEL_ENCAP_IP:
		return print_encap_ip(op, len, encap);
	case LWTUNNEL_ENCAP_ILA:
		return print_encap_ila(op, len, encap);
	case LWTUNNEL_ENCAP_IP6:
		return print_encap_ip6(op, len, encap);
	}

	return snprintf(op, len, "unknown encap type %d", encap->type);
}