| 218 | } |
| 219 | |
| 220 | int |
| 221 | rte_pdcp_entity_suspend(struct rte_pdcp_entity *pdcp_entity, |
| 222 | struct rte_mbuf *out_mb[]) |
| 223 | { |
| 224 | struct entity_priv_dl_part *dl; |
| 225 | struct entity_priv *en_priv; |
| 226 | int nb_out = 0; |
| 227 | |
| 228 | if (pdcp_entity == NULL) |
| 229 | return -EINVAL; |
| 230 | |
| 231 | en_priv = entity_priv_get(pdcp_entity); |
| 232 | |
| 233 | if (en_priv->flags.is_ul_entity) { |
| 234 | en_priv->state.tx_next = 0; |
| 235 | } else { |
| 236 | dl = entity_dl_part_get(pdcp_entity); |
| 237 | nb_out = pdcp_reorder_up_to_get(&dl->reorder, out_mb, pdcp_entity->max_pkt_cache, |
| 238 | en_priv->state.rx_next); |
| 239 | pdcp_reorder_stop(&dl->reorder); |
| 240 | en_priv->state.rx_next = 0; |
| 241 | en_priv->state.rx_deliv = 0; |
| 242 | } |
| 243 | |
| 244 | return nb_out; |
| 245 | } |
| 246 | |
| 247 | struct rte_mbuf * |
| 248 | rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity, |