forked from Mirror/frr
Merge pull request #17957 from pguibert6WIND/codepoint_add_some_flavors
isisd, lib: add some codepoints usually shared with other vendors
This commit is contained in:
commit
b85cf812c2
|
@ -999,6 +999,14 @@ void isis_zebra_srv6_sid_install(struct isis_area *area,
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
default:
|
||||
zlog_err(
|
||||
"ISIS-SRv6 (%s): unsupported SRv6 endpoint behavior %u",
|
||||
|
@ -1056,6 +1064,14 @@ void isis_zebra_srv6_sid_uninstall(struct isis_area *area,
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
default:
|
||||
zlog_err(
|
||||
"ISIS-SRv6 (%s): unsupported SRv6 endpoint behavior %u",
|
||||
|
@ -1121,6 +1137,14 @@ void isis_zebra_srv6_adj_sid_install(struct srv6_adjacency *sra)
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
default:
|
||||
zlog_err(
|
||||
"ISIS-SRv6 (%s): unsupported SRv6 endpoint behavior %u",
|
||||
|
@ -1167,6 +1191,14 @@ void isis_zebra_srv6_adj_sid_uninstall(struct srv6_adjacency *sra)
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
default:
|
||||
zlog_err(
|
||||
"ISIS-SRv6 (%s): unsupported SRv6 endpoint behavior %u",
|
||||
|
|
26
lib/srv6.h
26
lib/srv6.h
|
@ -176,12 +176,20 @@ struct srv6_locator_chunk {
|
|||
enum srv6_endpoint_behavior_codepoint {
|
||||
SRV6_ENDPOINT_BEHAVIOR_RESERVED = 0x0000,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END = 0x0001,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_PSP = 0x0002,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X = 0x0005,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_PSP = 0x0006,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT6 = 0x0012,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT4 = 0x0013,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT46 = 0x0014,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD = 0x001D,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD = 0x0021,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID = 0x002B,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID = 0x002C,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID = 0x0034,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP = 0x002C,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD = 0x0030,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP = 0x0035,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD = 0x0039,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID = 0x003E,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID = 0x003F,
|
||||
SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID = 0x0040,
|
||||
|
@ -199,8 +207,16 @@ srv6_endpoint_behavior_codepoint2str(enum srv6_endpoint_behavior_codepoint behav
|
|||
return "Reserved";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
return "End";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
return "End PSP";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
return "End PSP/USD";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
return "End.X";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
return "End.X PSP";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
return "End.X PSP/USD";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
|
||||
return "End.DT6";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4:
|
||||
|
@ -209,8 +225,16 @@ srv6_endpoint_behavior_codepoint2str(enum srv6_endpoint_behavior_codepoint behav
|
|||
return "End.DT46";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
return "uN";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
return "uN PSP";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
return "uN PSP/USD";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
return "uA";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
return "uA PSP";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
return "uA PSP/USD";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID:
|
||||
return "uDT6";
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
|
||||
|
|
|
@ -1696,9 +1696,21 @@ static void srv6_sid_cli_show(struct vty *vty, const struct lyd_node *sid, bool
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
vty_out(vty, " behavior End");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
vty_out(vty, " behavior End PSP");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
vty_out(vty, " behavior End PSP/USD");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
vty_out(vty, " behavior End.X");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
vty_out(vty, " behavior End.X PSP");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
vty_out(vty, " behavior End.X PSP/USD");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
|
||||
vty_out(vty, " behavior End.DT6");
|
||||
break;
|
||||
|
@ -1711,9 +1723,21 @@ static void srv6_sid_cli_show(struct vty *vty, const struct lyd_node *sid, bool
|
|||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
vty_out(vty, " behavior uN");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
vty_out(vty, " behavior uN PSP");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
vty_out(vty, " behavior uN PSP/USD");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
vty_out(vty, " behavior uA");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
vty_out(vty, " behavior uA PSP");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
vty_out(vty, " behavior uA PSP/USD");
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID:
|
||||
vty_out(vty, " behavior uDT6");
|
||||
break;
|
||||
|
|
|
@ -631,9 +631,20 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid)
|
|||
}
|
||||
|
||||
switch (sid->behavior) {
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
action = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
SET_SRV6_FLV_OP(ctx.flv.flv_ops, ZEBRA_SEG6_LOCAL_FLV_OP_PSP);
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
action = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
action = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
SET_SRV6_FLV_OP(ctx.flv.flv_ops, ZEBRA_SEG6_LOCAL_FLV_OP_NEXT_CSID);
|
||||
SET_SRV6_FLV_OP(ctx.flv.flv_ops, ZEBRA_SEG6_LOCAL_FLV_OP_PSP);
|
||||
ctx.flv.lcblock_len = sid->locator->block_bits_length;
|
||||
ctx.flv.lcnode_func_len = sid->locator->node_bits_length;
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
action = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
SET_SRV6_FLV_OP(ctx.flv.flv_ops, ZEBRA_SEG6_LOCAL_FLV_OP_NEXT_CSID);
|
||||
|
@ -691,8 +702,14 @@ void static_zebra_srv6_sid_install(struct static_srv6_sid *sid)
|
|||
return;
|
||||
}
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_RESERVED:
|
||||
zlog_warn("unsupported behavior: %u", sid->behavior);
|
||||
|
@ -764,7 +781,9 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid)
|
|||
|
||||
switch (sid->behavior) {
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID:
|
||||
|
@ -811,8 +830,14 @@ void static_zebra_srv6_sid_uninstall(struct static_srv6_sid *sid)
|
|||
return;
|
||||
}
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_RESERVED:
|
||||
zlog_warn("unsupported behavior: %u", sid->behavior);
|
||||
|
@ -872,7 +897,9 @@ extern void static_zebra_request_srv6_sid(struct static_srv6_sid *sid)
|
|||
/* convert `srv6_endpoint_behavior_codepoint` to `seg6local_action_t` */
|
||||
switch (sid->behavior) {
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
ctx.behavior = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
|
||||
|
@ -914,8 +941,14 @@ extern void static_zebra_request_srv6_sid(struct static_srv6_sid *sid)
|
|||
}
|
||||
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_RESERVED:
|
||||
zlog_warn("unsupported behavior: %u", sid->behavior);
|
||||
|
@ -940,7 +973,9 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid)
|
|||
/* convert `srv6_endpoint_behavior_codepoint` to `seg6local_action_t` */
|
||||
switch (sid->behavior) {
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
|
||||
ctx.behavior = ZEBRA_SEG6_LOCAL_ACTION_END;
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
|
||||
|
@ -982,8 +1017,14 @@ extern void static_zebra_release_srv6_sid(struct static_srv6_sid *sid)
|
|||
}
|
||||
|
||||
break;
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_OPAQUE:
|
||||
case SRV6_ENDPOINT_BEHAVIOR_RESERVED:
|
||||
zlog_warn("unsupported behavior: %u", sid->behavior);
|
||||
|
|
Loading…
Reference in a new issue