Flex5G: Flexible Functional Split in 5G Networks