mpls_push
bool mpls_push;
if (parse_state->mpls_push && !netif_is_bareudp(out_dev)) {
if (parse_state->eth_pop && !parse_state->mpls_push) {
if (parse_state->mpls_push) {
parse_state->mpls_push = false;
act->mpls_push.proto != htons(ETH_P_MPLS_UC)) {
mpls_info->label = act->mpls_push.label;
mpls_info->tc = act->mpls_push.tc;
mpls_info->bos = act->mpls_push.bos;
mpls_info->ttl = act->mpls_push.ttl;
parse_state->mpls_push = true;
if (act->mpls_push.bos != ACT_MPLS_BOS_NOT_SET) {
mpls_lse |= act->mpls_push.bos << MPLS_LS_S_SHIFT;
if (act->mpls_push.tc != ACT_MPLS_TC_NOT_SET)
mpls_lse |= act->mpls_push.tc << MPLS_LS_TC_SHIFT;
mpls_lse |= act->mpls_push.label << MPLS_LS_LABEL_SHIFT;
mpls_lse |= act->mpls_push.ttl << MPLS_LS_TTL_SHIFT;
push_mpls->ethtype = act->mpls_push.proto;
} mpls_push;
mpls_push(mpls, pkt_dev);
mpls_push(mpls, pkt_dev);
entry->mpls_push.proto = tcf_mpls_proto(act);
entry->mpls_push.label = tcf_mpls_label(act);
entry->mpls_push.tc = tcf_mpls_tc(act);
entry->mpls_push.bos = tcf_mpls_bos(act);
entry->mpls_push.ttl = tcf_mpls_ttl(act);