Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flows may have stale PDR ids after session modification #14

Closed
ivan4th opened this issue Oct 23, 2020 · 0 comments · Fixed by #15
Closed

Flows may have stale PDR ids after session modification #14

ivan4th opened this issue Oct 23, 2020 · 0 comments · Fixed by #15

Comments

@ivan4th
Copy link
Contributor

ivan4th commented Oct 23, 2020

Previous report: travelping/vpp#85

quay.io/travelping/upf:fix-2009-traffic-timer_v20.09-upfbase-9-g9a520fa75_debug

The result of having stale PDRs is this crash:

/src/vpp/src/plugins/upf/upf_input.c:152 (upf_input) assertion `(((upf_buffer_opaque_t *)((u8 *)((b)->opaque2) + ((uword) & (((vnet_buffer_opaque_t *) 0)->unused))))->gtpu.pdr_idx) < vec_len (active->pdr)' fails
ivan4th added a commit that referenced this issue Oct 24, 2020
This adds generation id to the session which is checked against the
flow. If the generation id does not match, the flow is re-classified.

In order to enable flow re-classification in case of app detection,
the URI that was extracted by ADF code is now stored in the flow.

Formely, the traffic on flows for modified sessions could result
in crashes such as this:

/src/vpp/src/plugins/upf/upf_input.c:152 (upf_input) assertion `(((upf_buffer_opaque_t *)((u8 *)((b)->opaque2) + ((uword) & (((vnet_buffer_opaque_t *) 0)->unused))))->gtpu.pdr_idx) < vec_len (active->pdr)' fails

Fixes #14.
ivan4th added a commit that referenced this issue Oct 24, 2020
This adds generation id to the session which is checked against the
flow. If the generation id does not match, the flow is re-classified.

In order to enable flow re-classification in case of app detection,
the URI that was extracted by ADF code is now stored in the flow.

Formely, the traffic on flows for modified sessions could result
in crashes such as this:

/src/vpp/src/plugins/upf/upf_input.c:152 (upf_input) assertion `(((upf_buffer_opaque_t *)((u8 *)((b)->opaque2) + ((uword) & (((vnet_buffer_opaque_t *) 0)->unused))))->gtpu.pdr_idx) < vec_len (active->pdr)' fails

Fixes #14.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant