Open Radio Access Network (O-RAN) is an innovative RAN architecture designed to revolutionize 5G and beyond mobile networks. O-RAN virtualizes the fronthaul network functions into O-RAN Centralized Unit (O-CU), O-RAN Distributed Unit (O-DU) and O-RAN Radio Unit (O-RU). Unfortunately, no standard data communication mechanism has been defined for the communication between these elements. Therefore, O-DUs may not work efficiently in O-DU pool, limiting the RAN performance. This paper investigates an optimized solution for routing and packet scheduling, allowing multiple O-DU pools to communicate with their O-RUs meeting the requirements of different 5G classes of service. We propose an O-DU pool architecture and formulate the problem of optimal routing and packet scheduling to forward Orthogonal Frequency-Division Multiplexing (OFDM) symbols over the optimal routes and map UDP packet sizes to fragment OFDM symbols. Numerical results show our solution can select the optimal routes and packet sizes to carry requested traffic. Moreover, in the multiple O-DU pools coexisting, we use the Dynamic Programming (DP) algorithm to find out the optimal global solution and a greedy algorithm to approximate the solution in near real-time.