diff --git a/octavia_f5/common/config.py b/octavia_f5/common/config.py
index b78c9c8..9a1eb4a 100644
--- a/octavia_f5/common/config.py
+++ b/octavia_f5/common/config.py
@@ -58,9 +58,21 @@ f5_agent_opts = [
                choices=[constants.SERVICE_L4,
                         constants.SERVICE_TCP],
                help=_("Service type used for TCP listener")),
+    cfg.StrOpt('profile_http', default=None,
+               help=_("Path to default HTTP profile"
+                      "(e.g. custom_http)")),
+    cfg.StrOpt('profile_http_compression', default=None,
+               help=_("Path to default http compression profile"
+                      " profile (e.g. custom_http_compression)")),
     cfg.StrOpt('profile_l4', default=None,
-               help=_("Path to default l4 acceleration profile"
-                      "(e.g. /Common/custom_fastl4)")),
+               help=_("Path to default L4 acceleration profile"
+                      "(e.g. custom_fastl4)")),
+    cfg.StrOpt('profile_tcp', default=None,
+               help=_("Path to default TCP profile"
+                      "(e.g. custom_tcp)")),
+    cfg.StrOpt('profile_udp', default=None,
+               help=_("Path to default UDP profile"
+                      "(e.g. custom_udp)")),
     cfg.StrOpt('profile_multiplex', default=None,
                help=_("Path to default multiplex (oneconnect) acceleration"
                       " profile (e.g. /Common/custom_oneconnect)")),
diff --git a/octavia_f5/common/constants.py b/octavia_f5/common/constants.py
index 6496baa..6796259 100644
--- a/octavia_f5/common/constants.py
+++ b/octavia_f5/common/constants.py
@@ -52,6 +52,8 @@ SERVICE_L4 = 'Service_L4'
 SERVICE_GENERIC = 'Service_Generic'
 SUPPORTED_SERVICES = (SERVICE_TCP, SERVICE_UDP, SERVICE_HTTP,
                       SERVICE_HTTPS, SERVICE_L4, SERVICE_GENERIC)
+SERVICE_TCP_TYPES = (SERVICE_TCP, SERVICE_GENERIC, SERVICE_HTTP, SERVICE_HTTPS)
+SERVICE_HTTP_TYPES = (SERVICE_HTTP, SERVICE_HTTPS)
 
 SEGMENT = 'segment'
 VIF_TYPE = 'f5'
diff --git a/octavia_f5/restclient/as3classes.py b/octavia_f5/restclient/as3classes.py
index 0752cd4..304f6f8 100644
--- a/octavia_f5/restclient/as3classes.py
+++ b/octavia_f5/restclient/as3classes.py
@@ -180,10 +180,12 @@ class Monitor(BaseDescription):
 
 
 class BigIP(BaseDescription):
-    def __init__(self, bigip):
+    def __init__(self, bigip, _common=True):
         super(BigIP, self).__init__(locals())
 
         self.require('bigip')
+        if _common:
+            setattr(self, 'bigip', '/Common/{}'.format(bigip))
 
 
 class Service_Generic_profileTCP(BaseDescription):
diff --git a/octavia_f5/restclient/as3objects/service.py b/octavia_f5/restclient/as3objects/service.py
index 7034cd8..d3977ff 100644
--- a/octavia_f5/restclient/as3objects/service.py
+++ b/octavia_f5/restclient/as3objects/service.py
@@ -53,10 +53,7 @@ def get_esd_entities(servicetype, esd):
     service_args = {}
     irules = esd.get('lbaas_irule', None)
     if irules:
-        service_args['iRules'] = [
-            as3.BigIP('/Common/' + rule) for
-            rule in irules
-        ]
+        service_args['iRules'] = [as3.BigIP(rule) for rule in irules]
 
     # client / server tcp profiles
     if servicetype in [const.SERVICE_HTTP, const.SERVICE_HTTPS,
@@ -66,11 +63,11 @@ def get_esd_entities(servicetype, esd):
         if stcp and ctcp:
             # Server and Clientside profile defined
             service_args['profileTCP'] = as3.Service_Generic_profileTCP(
-                ingress=as3.BigIP('/Common/' + ctcp),
-                egress=as3.BigIP('/Common/' + stcp)
+                ingress=as3.BigIP(ctcp),
+                egress=as3.BigIP(stcp)
             )
         elif ctcp:
-            service_args['profileTCP'] = as3.BigIP('/Common/' + ctcp)
+            service_args['profileTCP'] = as3.BigIP(ctcp)
         else:
             service_args['profileTCP'] = 'normal'
 
@@ -78,14 +75,12 @@ def get_esd_entities(servicetype, esd):
         # OneConnect (Multiplex) Profile
         oneconnect = esd.get('lbaas_one_connect', None)
         if oneconnect:
-            service_args['profileMultiplex'] = as3.BigIP(
-                '/Common/' + oneconnect)
+            service_args['profileMultiplex'] = as3.BigIP(oneconnect)
 
         # HTTP Compression Profile
         compression = esd.get('lbaas_http_compression', None)
         if compression:
-            service_args['profileHTTPCompression'] = as3.BigIP(
-                '/Common/' + compression)
+            service_args['profileHTTPCompression'] = as3.BigIP(compression)
 
     return service_args
 
@@ -124,7 +119,7 @@ def get_service(listener, cert_manager, esd_repository):
         service_args['_servicetype'] = const.SERVICE_HTTP
     # HTTPS (non-terminated)
     elif listener.protocol == const.PROTOCOL_HTTPS:
-        service_args['_servicetype'] = const.SERVICE_GENERIC
+        service_args['_servicetype'] = CONF.f5_agent.tcp_service_type
     # Proxy
     elif listener.protocol == const.PROTOCOL_PROXY:
         service_args['_servicetype'] = const.SERVICE_HTTP
@@ -154,10 +149,18 @@ def get_service(listener, cert_manager, esd_repository):
         ))
         entities.extend([(cert['id'], cert['as3']) for cert in certificates])
 
-    # add profile
-    if CONF.f5_agent.profile_l4:
+    # add default profiles to supported listeners
+    if CONF.f5_agent.profile_http and service_args['_servicetype'] in const.SERVICE_HTTP_TYPES:
+        service_args['profileHTTP'] = as3.BigIP(CONF.f5_agent.profile_http)
+    if CONF.f5_agent.profile_http_compression and service_args['_servicetype'] in const.SERVICE_HTTP_TYPES:
+        service_args['profileHTTPCompression'] = as3.BigIP(CONF.f5_agent.profile_http_compression)
+    if CONF.f5_agent.profile_l4 and service_args['_servicetype'] == const.SERVICE_L4:
         service_args['profileL4'] = as3.BigIP(CONF.f5_agent.profile_l4)
-    if CONF.f5_agent.profile_multiplex:
+    if CONF.f5_agent.profile_tcp and service_args['_servicetype'] in const.SERVICE_TCP_TYPES:
+        service_args['profileTCP'] = as3.BigIP(CONF.f5_agent.profile_tcp)
+    if CONF.f5_agent.profile_udp and service_args['_servicetype'] == const.SERVICE_UDP:
+        service_args['profileUDP'] = as3.BigIP(CONF.f5_agent.profile_udp)
+    if CONF.f5_agent.profile_multiplex and service_args['_servicetype'] in const.SERVICE_HTTP_TYPES:
         service_args['profileMultiplex'] = as3.BigIP(CONF.f5_agent.profile_multiplex)
 
     if listener.connection_limit > 0:

Support of Default profiles for listener
Support configuration of default profiles for listeners:
- HTTP
- HTTP Compression
- Fast L4
- TCP
- UDP
- Multiplex (OneConnect)
diff --git a/octavia_f5/tests/unit/restclient/test_as3classes.py b/octavia_f5/tests/unit/restclient/test_as3classes.py
index ed0e339..a78b746 100644
--- a/octavia_f5/tests/unit/restclient/test_as3classes.py
+++ b/octavia_f5/tests/unit/restclient/test_as3classes.py
@@ -189,9 +189,13 @@ class TestAS3Classes(base.TestCase):
     def test_bigip(self):
         # creation
         bigip = {'bigip': 'test_bigip'}
-        bigip_obj = as3classes.BigIP(bigip['bigip'])
+        bigip_obj = as3classes.BigIP(bigip['bigip'], _common=False)
         self.assertEqual(bigip, bigip_obj.to_dict())
 
+        bigip_common = {'bigip': '/Common/test_bigip'}
+        bigip_obj = as3classes.BigIP(bigip['bigip'])
+        self.assertEqual(bigip_common, bigip_obj.to_dict())
+
     def test_servicegenericprofile_tcp(self):
         sgptcp = {'ingress': 'test_ingress',
                   'egress': 'test_egress'}

pip install -e .
parse_log_pytest
requirements.txt
oslotest pylint pytest
apt-get update apt-get install -y gcc
3.8
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alembic==1.14.1
amqp==5.3.1
astroid==3.2.4
attrs==25.3.0
automaton==3.2.0
autopage==0.5.2
backports.zoneinfo==0.2.1
bcrypt==4.3.0
blinker==1.8.2
cachetools==5.5.2
castellan==5.1.1
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
click==8.1.8
cliff==4.7.0
cmd2==2.5.11
cotyledon==1.7.3
cryptography==44.0.2
debtcollector==3.0.0
decorator==5.2.1
dill==0.3.9
distro==1.9.0
dnspython==2.6.1
dogpile.cache==1.3.4
eventlet==0.39.1
exceptiongroup==1.2.2
fasteners==0.19
fixtures==4.2.4.post1
Flask==3.0.3
futurist==3.0.0
greenlet==3.1.1
gunicorn==23.0.0
idna==3.10
importlib_metadata==8.5.0
importlib_resources==6.4.5
iniconfig==2.1.0
iso8601==2.1.0
isort==5.13.2
itsdangerous==2.2.0
Jinja2==3.1.6
jmespath==1.0.1
jsonpatch==1.33
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
keystoneauth1==5.8.1
keystonemiddleware==10.7.1
kombu==5.5.2
Mako==1.3.9
MarkupSafe==2.1.5
mccabe==0.7.0
mock==5.2.0
msgpack==1.1.0
netaddr==1.3.0
netifaces==0.11.0
networkx==3.1
octavia==14.0.0
-e git+https://github.com/sapcc/octavia-f5-provider-driver.git@5f970c462d5031c02c2b61fc6a837f2760301f56#egg=octavia_f5_provider_driver
octavia-lib==3.8.0
openstacksdk==4.0.1
os-client-config==2.1.0
os-service-types==1.7.0
osc-lib==3.2.0
oslo.cache==3.8.0
oslo.concurrency==6.1.0
oslo.config==9.6.0
oslo.context==5.6.0
oslo.db==16.0.0
oslo.i18n==6.4.0
oslo.log==6.1.2
oslo.messaging==14.9.1
oslo.metrics==0.9.0
oslo.middleware==6.2.0
oslo.policy==4.4.0
oslo.reports==3.4.0
oslo.serialization==5.5.0
oslo.service==3.5.0
oslo.upgradecheck==2.4.0
oslo.utils==7.3.0
oslotest==5.0.0
packaging==24.2
Paste==3.10.1
PasteDeploy==3.1.0
pbr==6.1.1
pecan==1.6.0
pkgutil_resolve_name==1.3.10
platformdirs==4.3.6
pluggy==1.5.0
prettytable==3.11.0
prometheus_client==0.21.1
psutil==7.0.0
pyasn1==0.6.1
pyasn1_modules==0.4.2
pycadf==4.0.0
pycparser==2.22
pydot==3.0.4
PyJWT==2.9.0
pylint==3.2.7
PyMySQL==1.1.1
pyOpenSSL==25.0.0
pyparsing==3.1.4
pyperclip==1.9.0
pyroute2==0.8.1
pytest==8.3.5
python-barbicanclient==7.0.0
python-cinderclient==9.6.0
python-dateutil==2.9.0.post0
python-glanceclient==4.7.0
python-keystoneclient==5.5.0
python-neutronclient==11.3.1
python-novaclient==18.7.0
python-subunit==1.4.4
pytz==2025.2
PyYAML==6.0.2
referencing==0.35.1
repoze.lru==0.7
requests==2.32.3
requestsexceptions==1.4.0
rfc3986==2.0.0
Routes==2.5.1
rpds-py==0.20.1
setproctitle==1.3.5
simplegeneric==0.8.1
simplejson==3.20.1
six==1.17.0
SQLAlchemy==2.0.40
SQLAlchemy-Utils==0.41.2
statsd==4.0.1
stevedore==5.3.0
taskflow==5.9.1
tenacity==9.0.0
testresources==2.0.1
testscenarios==0.5.0
testtools==2.7.2
tomli==2.2.1
tomlkit==0.13.2
typing_extensions==4.12.2
tzdata==2025.2
urllib3==2.2.3
vine==5.1.0
warlock==2.0.1
wcwidth==0.2.13
WebOb==1.8.9
Werkzeug==3.0.6
wrapt==1.17.2
WSME==0.12.1
yappi==1.6.10
zipp==3.20.2

name: octavia-f5-provider-driver
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alembic==1.14.1
      - amqp==5.3.1
      - astroid==3.2.4
      - attrs==25.3.0
      - automaton==3.2.0
      - autopage==0.5.2
      - backports-zoneinfo==0.2.1
      - bcrypt==4.3.0
      - blinker==1.8.2
      - cachetools==5.5.2
      - castellan==5.1.1
      - certifi==2025.1.31
      - cffi==1.17.1
      - charset-normalizer==3.4.1
      - click==8.1.8
      - cliff==4.7.0
      - cmd2==2.5.11
      - cotyledon==1.7.3
      - cryptography==44.0.2
      - debtcollector==3.0.0
      - decorator==5.2.1
      - dill==0.3.9
      - distro==1.9.0
      - dnspython==2.6.1
      - dogpile-cache==1.3.4
      - eventlet==0.39.1
      - exceptiongroup==1.2.2
      - fasteners==0.19
      - fixtures==4.2.4.post1
      - flask==3.0.3
      - futurist==3.0.0
      - greenlet==3.1.1
      - gunicorn==23.0.0
      - idna==3.10
      - importlib-metadata==8.5.0
      - importlib-resources==6.4.5
      - iniconfig==2.1.0
      - iso8601==2.1.0
      - isort==5.13.2
      - itsdangerous==2.2.0
      - jinja2==3.1.6
      - jmespath==1.0.1
      - jsonpatch==1.33
      - jsonpointer==3.0.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2023.12.1
      - keystoneauth1==5.8.1
      - keystonemiddleware==10.7.1
      - kombu==5.5.2
      - mako==1.3.9
      - markupsafe==2.1.5
      - mccabe==0.7.0
      - mock==5.2.0
      - msgpack==1.1.0
      - netaddr==1.3.0
      - netifaces==0.11.0
      - networkx==3.1
      - octavia==14.0.0
      - octavia-lib==3.8.0
      - openstacksdk==4.0.1
      - os-client-config==2.1.0
      - os-service-types==1.7.0
      - osc-lib==3.2.0
      - oslo-cache==3.8.0
      - oslo-concurrency==6.1.0
      - oslo-config==9.6.0
      - oslo-context==5.6.0
      - oslo-db==16.0.0
      - oslo-i18n==6.4.0
      - oslo-log==6.1.2
      - oslo-messaging==14.9.1
      - oslo-metrics==0.9.0
      - oslo-middleware==6.2.0
      - oslo-policy==4.4.0
      - oslo-reports==3.4.0
      - oslo-serialization==5.5.0
      - oslo-service==3.5.0
      - oslo-upgradecheck==2.4.0
      - oslo-utils==7.3.0
      - oslotest==5.0.0
      - packaging==24.2
      - paste==3.10.1
      - pastedeploy==3.1.0
      - pbr==6.1.1
      - pecan==1.6.0
      - pkgutil-resolve-name==1.3.10
      - platformdirs==4.3.6
      - pluggy==1.5.0
      - prettytable==3.11.0
      - prometheus-client==0.21.1
      - psutil==7.0.0
      - pyasn1==0.6.1
      - pyasn1-modules==0.4.2
      - pycadf==4.0.0
      - pycparser==2.22
      - pydot==3.0.4
      - pyjwt==2.9.0
      - pylint==3.2.7
      - pymysql==1.1.1
      - pyopenssl==25.0.0
      - pyparsing==3.1.4
      - pyperclip==1.9.0
      - pyroute2==0.8.1
      - pytest==8.3.5
      - python-barbicanclient==7.0.0
      - python-cinderclient==9.6.0
      - python-dateutil==2.9.0.post0
      - python-glanceclient==4.7.0
      - python-keystoneclient==5.5.0
      - python-neutronclient==11.3.1
      - python-novaclient==18.7.0
      - python-subunit==1.4.4
      - pytz==2025.2
      - pyyaml==6.0.2
      - referencing==0.35.1
      - repoze-lru==0.7
      - requests==2.32.3
      - requestsexceptions==1.4.0
      - rfc3986==2.0.0
      - routes==2.5.1
      - rpds-py==0.20.1
      - setproctitle==1.3.5
      - simplegeneric==0.8.1
      - simplejson==3.20.1
      - six==1.17.0
      - sqlalchemy==2.0.40
      - sqlalchemy-utils==0.41.2
      - statsd==4.0.1
      - stevedore==5.3.0
      - taskflow==5.9.1
      - tenacity==9.0.0
      - testresources==2.0.1
      - testscenarios==0.5.0
      - testtools==2.7.2
      - tomli==2.2.1
      - tomlkit==0.13.2
      - typing-extensions==4.12.2
      - tzdata==2025.2
      - urllib3==2.2.3
      - vine==5.1.0
      - warlock==2.0.1
      - wcwidth==0.2.13
      - webob==1.8.9
      - werkzeug==3.0.6
      - wrapt==1.17.2
      - wsme==0.12.1
      - yappi==1.6.10
      - zipp==3.20.2
prefix: /opt/conda/envs/octavia-f5-provider-driver

octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_bigip
octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_as3
octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_adc octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_application octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_endpoint_policy octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_endpoint_policy_rule octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_irule octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_member octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_monitor octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_persist octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_policy_condition octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_pool octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_service octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_servicegenericprofile_tcp octavia_f5/tests/unit/restclient/test_as3classes.py::TestAS3Classes::test_tenant
octavia_f5/common/config.py octavia_f5/restclient/as3classes.py octavia_f5/common/constants.py octavia_f5/restclient/as3objects/service.py
octavia_f5/common/config.py octavia_f5/restclient/as3classes.py octavia_f5/common/constants.py octavia_f5/restclient/as3objects/service.py