- gbp_itf_set_l2_output_feature (vxr->vxr_itf, vxr->vxr_sw_if_index,
- L2OUTPUT_FEAT_GBP_POLICY_MAC);
- gbp_itf_set_l2_input_feature (vxr->vxr_itf, vxr->vxr_sw_if_index,
- L2INPUT_FEAT_GBP_LEARN);
+ ofeat = (L2OUTPUT_FEAT_GBP_POLICY_MAC |
+ L2OUTPUT_FEAT_GBP_ID_2_SCLASS);
+ ifeat = L2INPUT_FEAT_GBP_SCLASS_2_ID;
+
+ if (!(gbd->gb_flags & GBP_BD_FLAG_DO_NOT_LEARN))
+ ifeat |= L2INPUT_FEAT_GBP_LEARN;
+
+ gbp_itf_set_l2_output_feature (vxr->vxr_itf,
+ vxr->vxr_sw_if_index, ofeat);
+ gbp_itf_set_l2_input_feature (vxr->vxr_itf,
+ vxr->vxr_sw_if_index, ifeat);