{"id":18830,"date":"2022-10-17T10:03:25","date_gmt":"2022-10-17T08:03:25","guid":{"rendered":"http:\/\/hurt-portal.web-br.corpnet.pl\/tpix\/tpixeng\/"},"modified":"2025-04-01T13:45:36","modified_gmt":"2025-04-01T11:45:36","slug":"en","status":"publish","type":"page","link":"https:\/\/hurt-orange.pl\/tpix\/en\/","title":{"rendered":"TPIX | Open peering"},"content":{"rendered":"\n\n            \n            <div\n                                class=\"slider-type-2 position-relative invisible\"\n                data-slick_dots=\"\"\n                data-slick_arrows=\"\"\n                data-slick_infinite=\"\"\n                data-slick_speed=\"500\"\n                data-slick_autoplay=\"\"\n                data-slick_autoplay_speed=\"2500\"\n                data-slick_cssease=\"ease\"\n                data-slick_animation=\"slide\"\n                data-slick_pauseonhover=\"\"\n            >\n                <div class=\"slider-type-2__slides\">\n                                                                    <div>\n                                                            <div class=\"slide-6a222d59cea30 slider-type-2__slide position-relative overflow-hidden\">\n        <div class=\"slider-type-2__slide__image position-md-relative position-sm-absolute\">\n            <img\n                    class=\"d-none d-lg-block desktop\"\n                    data-lazy=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2024\/04\/TPIX_slider_desktop_new.webp\"\n                    alt=\"Stable and secure exchange of IP traffic\"\n                    height=\"100%\"\n            >\n            <img class=\"d-block d-lg-none mobile\" data-lazy=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/TPIX_slider_mobile.png\"\n                 alt=\"Stable and secure exchange of IP traffic\"\n                 height=\"100%\">\n        <\/div>\n        <div class=\"slider-type-2__slide__feed container position-relative\">\n            <div\n                    class=\"slider-type-2__slide__feed-box position-relative d-flex flex-column\n                        justify-content-start py-4 col pl-lg-0\"\n            >\n                                    <h2 class=\"slider-type-2__slide__title m-lg-0 pr-lg-4\">Stable and secure exchange of IP traffic<\/h2>\n                                                    <div class=\"slider-type-2__slide__description-container pr-lg-4\">\n                                                    <p class=\"slider-type-2__slide__description m-lg-0\">\n                                content | television | multimedia | internet | world                            <\/p>\n                                                                    <\/div>\n                                                    <div class=\"d-flex pt-3\">\n                                                <a                                href=\"\/tpix\/en\/offer\/\"                                                                class=\"button button-large button-transparent btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none mt-3 mt-lg-0 button-orange\"\n                            >\n                Learn more            <\/a>\n                            <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n                            <\/div>\n                                    <\/div>\n                <div class=\"slider-type-2__nav position-absolute justify-content-center mb-4\">\n\n                <\/div>\n            <\/div>\n        \n\n                \n        <div\n                            class=\"banner-type-9 py-2 position-relative banner-type-96a222d59cece4\"\n        >\n            <div class=\"banner-type-9__bg position-absolute\" style=\"background-color: \"><\/div>\n\n            <div class=\"my-3 my-lg-5 position-relative row banner-type-9__row\">\n                <div class=\"col-12 col-lg-6 pl-lg-0 mb-3 mb-lg-0 px-0 pl-lg-3 pr-lg-2\">\n                    <div class=\"banner-type-9__box-bg p-3 p-lg-0  banner-type-9__col-left\"\n                         style=\"background-color: #fff;\">\n                                                    <h3 class=\"banner-type-9__title mt-2 mb-2 mb-lg-4\">TPIX traffic statistics<\/h3>\n                                                                            <p class=\"banner-type-9__left-text\">\n                                Check the current traffic on the TPIX platform from a daily, monthly and yearly perspective.                                                                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/en\/tpix-traffic-statistics\/\" title=\"See details\" class=\"stats-link\">See details<\/a>\n                                                            <\/p>\n                                                <div class=\"banner-type-9__chart chart mt-3\">\n                                    <div class=\"row chart-content position-relative chart-content--compact\">\n                        <div class=\"col-12\">\n                <div class=\"chart__canvas-wrapper mt-3\">\n                    <div class=\"chart__loading\" id=\"chart-day-loading\">Pobieranie danych z TPIX&#8230;<\/div>\n                    <div class=\"chart__error\" id=\"chart-day-error\"><\/div>\n                    <canvas id=\"chart-day\"><\/canvas>\n                <\/div>\n                <div class=\"chart__stats\" id=\"stats-day\"><\/div>\n            <\/div>\n                    <\/div>\n                <script src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/themes\/orange-hurt\/components\/chart\/vendor\/chart.umd.min.js\"><\/script>\n        <script src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/themes\/orange-hurt\/components\/chart\/vendor\/chartjs-adapter-date-fns.bundle.min.js\"><\/script>\n        <script>\n        (function () {\n            if (window.__tpixChartInit) return;\n            window.__tpixChartInit = true;\n\n            var ORANGE = '#ff7900';\n            var ORANGE_FILL = 'rgba(255, 121, 0, 0.85)';\n\n            var XML_URL = \"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/themes\\\/orange-hurt\\\/components\\\/chart\\\/proxy.php\";\n\n            function show(id, display) {\n                var el = document.getElementById(id);\n                if (el) el.style.display = display;\n            }\n\n            async function fetchXML() {\n                var bust = '?_=' + Date.now();\n                var response;\n                try {\n                    response = await fetch(XML_URL + bust, { cache: 'no-store' });\n                    if (!response.ok) throw new Error('proxy failed');\n                } catch (e) {\n                    response = await fetch('https:\/\/lg.tpix.pl\/graphs\/total.xml' + bust, { cache: 'no-store' });\n                }\n                var text = await response.text();\n                var doc = new DOMParser().parseFromString(text, 'application\/xml');\n                if (doc.querySelector('parsererror')) {\n                    throw new Error('Invalid XML response');\n                }\n                return doc;\n            }\n\n            function parseRRA(xml, rraIndex) {\n                var rras = xml.querySelectorAll('rra');\n                var rra = rras[rraIndex];\n                if (!rra) return [];\n\n                var dbEl = rra.querySelector('database');\n                if (!dbEl) return [];\n                var dbHTML = dbEl.innerHTML;\n                var commentRegex = \/<!--\\s*(\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2})\\s+\\w+\\s*\\\/\\s*(\\d+)\\s*-->\\s*<row><v>([\\d.eE+\\-NaN]+)<\\\/v><v>([\\d.eE+\\-NaN]+)<\\\/v><\\\/row>\/g;\n\n                var data = [];\n                var match;\n                while ((match = commentRegex.exec(dbHTML)) !== null) {\n                    var timestamp = parseInt(match[2]) * 1000;\n                    var input = parseFloat(match[3]);\n                    var output = parseFloat(match[4]);\n                    if (!isNaN(input) && !isNaN(output)) {\n                        data.push({ timestamp: timestamp, input: input, output: output });\n                    }\n                }\n                return data;\n            }\n\n            \/\/ Remove sudden dips caused by missing\/incomplete readings.\n            function smoothDips(data, thresholdRatio) {\n                if (thresholdRatio === undefined) thresholdRatio = 0.8;\n                if (data.length < 5) return data;\n                var smoothed = data.map(function (d) { return Object.assign({}, d); });\n                for (var i = 1; i < smoothed.length - 1; i++) {\n                    var prev = smoothed[i - 1];\n                    var curr = smoothed[i];\n                    var next = data[i + 1];\n                    ['input', 'output'].forEach(function (field) {\n                        var neighborAvg = (prev[field] + next[field]) \/ 2;\n                        if (neighborAvg > 0 && curr[field] < neighborAvg * thresholdRatio) {\n                            smoothed[i][field] = neighborAvg;\n                        }\n                    });\n                }\n                return smoothed;\n            }\n\n            function formatTbps(val) {\n                return (val \/ 1e12).toFixed(2) + ' Tbps';\n            }\n\n            function calcStats(data, field) {\n                var values = data.map(function (d) { return d[field]; }).filter(function (v) { return v > 0; });\n                if (values.length === 0) return { max: 0, avg: 0, last: 0 };\n                var max = Math.max.apply(null, values);\n                var avg = values.reduce(function (a, b) { return a + b; }, 0) \/ values.length;\n                var last = values[values.length - 1];\n                return { max: max, avg: avg, last: last };\n            }\n\n            function fmtDateTime(ts, withTime) {\n                var d = new Date(ts);\n                var pad = function (n) { return n < 10 ? '0' + n : '' + n; };\n                var datePart = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '.' + d.getFullYear();\n                if (!withTime) return datePart;\n                return datePart + ', ' + pad(d.getHours()) + ':' + pad(d.getMinutes());\n            }\n\n            function renderKPI(chartId, data, withTime) {\n                if (!data || !data.length) return;\n                var peak = 0;\n                var peakTs = data[0].timestamp;\n                for (var i = 0; i < data.length; i++) {\n                    var v = Math.max(data[i].input, data[i].output);\n                    if (v > peak) {\n                        peak = v;\n                        peakTs = data[i].timestamp;\n                    }\n                }\n                var peakEl = document.getElementById(chartId + '-peak');\n                var periodEl = document.getElementById(chartId + '-period');\n                if (peakEl) peakEl.textContent = (peak \/ 1e12).toFixed(2) + ' Tbps';\n                if (periodEl) periodEl.textContent = 'z dnia ' + fmtDateTime(peakTs, withTime);\n            }\n\n            function renderStats(elId, stats) {\n                var el = document.getElementById(elId);\n                if (!el) return;\n                el.innerHTML =\n                    '<span>\u25a0 Traffic<\/span> ' +\n                    '<span>Max: ' + formatTbps(stats.max) + '<\/span> ' +\n                    '<span>Avg: ' + formatTbps(stats.avg) + '<\/span> ' +\n                    '<span>Last: ' + formatTbps(stats.last) + '<\/span>';\n            }\n\n            function createAreaChart(canvasId, data, smooth) {\n                var canvas = document.getElementById(canvasId);\n                if (!canvas) return;\n                var ctx = canvas.getContext('2d');\n                var labels = data.map(function (d) { return new Date(d.timestamp); });\n\n                var datasets = [{\n                    label: 'Traffic',\n                    data: data.map(function (d) { return Math.max(d.input, d.output) \/ 1e12; }),\n                    borderColor: ORANGE,\n                    backgroundColor: ORANGE_FILL,\n                    fill: true,\n                    borderWidth: 0.5,\n                    pointRadius: 0,\n                    tension: smooth ? 0.35 : 0.1,\n                }];\n\n                return new Chart(ctx, {\n                    type: 'line',\n                    data: { labels: labels, datasets: datasets },\n                    options: {\n                        responsive: true,\n                        maintainAspectRatio: false,\n                        interaction: { mode: 'index', intersect: false },\n                        scales: {\n                            x: {\n                                type: 'time',\n                                time: { tooltipFormat: 'yyyy-MM-dd HH:mm' },\n                                grid: { color: '#eee' },\n                                ticks: { color: '#666', font: { size: 11 } },\n                            },\n                            y: {\n                                beginAtZero: true,\n                                grid: { color: '#eee' },\n                                ticks: {\n                                    color: '#666',\n                                    font: { size: 11 },\n                                    callback: function (val) { return val.toFixed(1) + ' T'; },\n                                },\n                                title: {\n                                    display: true,\n                                    text: 'bits per second',\n                                    color: '#666',\n                                    font: { size: 11 },\n                                },\n                            },\n                        },\n                        plugins: {\n                            legend: { display: false },\n                            tooltip: {\n                                callbacks: {\n                                    label: function (c) { return c.dataset.label + ': ' + c.parsed.y.toFixed(2) + ' Tbps'; },\n                                },\n                            },\n                        },\n                    },\n                });\n            }\n\n            function showError(canvasId, msg) {\n                show(canvasId + '-loading', 'none');\n                var err = document.getElementById(canvasId + '-error');\n                if (err) {\n                    err.textContent = 'B\u0142\u0105d: ' + msg;\n                    err.style.display = 'block';\n                }\n            }\n\n            async function main() {\n                try {\n                    var xml = await fetchXML();\n\n                    var now = Date.now();\n                    var DAYS_30 = 30 * 24 * 3600 * 1000;\n                    var DAYS_365 = 365 * 24 * 3600 * 1000;\n\n                    var dayData = smoothDips(parseRRA(xml, 0));\n                    var monthData = parseRRA(xml, 2).filter(function (d) { return d.timestamp >= now - DAYS_30; });\n                    \/\/ Year chart uses MAX-consolidation RRA (RRA 7, 37h MAX) \u2014 RRA 3 averages over 24h\n                    \/\/ and smooths short spikes to ~half their real value, making chart and KPI peak inconsistent.\n                    var yearData = parseRRA(xml, 7).filter(function (d) { return d.timestamp >= now - DAYS_365; });\n                    var monthPeakData = parseRRA(xml, 6).filter(function (d) { return d.timestamp >= now - DAYS_30; });\n\n                    if (dayData.length === 0 && monthData.length === 0 && yearData.length === 0) {\n                        throw new Error('Brak danych w XML');\n                    }\n\n                    if (document.getElementById('chart-day')) {\n                        if (dayData.length > 0) {\n                            show('chart-day-loading', 'none');\n                            renderKPI('chart-day', dayData, true);\n                            renderStats('stats-day', calcStats(dayData, 'output'));\n                            createAreaChart('chart-day', dayData, true);\n                        } else {\n                            showError('chart-day', 'Brak danych');\n                        }\n                    }\n\n                    if (document.getElementById('chart-month')) {\n                        if (monthData.length > 0) {\n                            show('chart-month-loading', 'none');\n                            renderKPI('chart-month', monthPeakData.length > 0 ? monthPeakData : monthData, true);\n                            renderStats('stats-month', calcStats(monthData, 'output'));\n                            createAreaChart('chart-month', monthData, false);\n                        } else {\n                            showError('chart-month', 'Brak danych');\n                        }\n                    }\n\n                    if (document.getElementById('chart-year')) {\n                        if (yearData.length > 0) {\n                            show('chart-year-loading', 'none');\n                            renderKPI('chart-year', yearData, false);\n                            renderStats('stats-year', calcStats(yearData, 'output'));\n                            createAreaChart('chart-year', yearData, false);\n                        } else {\n                            showError('chart-year', 'Brak danych');\n                        }\n                    }\n                } catch (err) {\n                    ['chart-day', 'chart-month', 'chart-year'].forEach(function (id) {\n                        if (document.getElementById(id)) showError(id, err.message);\n                    });\n                    console.error(err);\n                }\n            }\n\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', main);\n            } else {\n                main();\n            }\n        })();\n        <\/script>\n                                <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-12 col-lg-6 pr-lg-0 px-0 pl-lg-2 pr-lg-3\">\n                    <div class=\"banner-type-9__box-bg p-3 p-lg-0 pl-lg-5 banner-type-9__col-right\n                        \"\n                         style=\"background-color: #fff;\">\n                                                    <h3 class=\"banner-type-9__title mt-2 mb-3 mb-lg-5\">The platform in numbers<\/h3>\n                                                                        <div class=\"row\">\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2022\/02\/Conecta-40x.png\" alt=\"ConnectedASN\"\/><\/div>\n                                <span class=\"icon-header\">410<\/span>\n                                <span class=\"icon-text\">Connected<br>ASN<\/span>\n                            <\/div>\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Graph_Pie_chart-F16E00-40x40-1.png\" alt=\"Capacity(Tbit)\"\/><\/div>\n                                <span class=\"icon-header\">40<\/span>\n                                <span class=\"icon-text\">Capacity<br>(Tbit)<\/span>\n                            <\/div>\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Data-centre-52x40-1.png\" alt=\"Ports in useAvailable ports\"\/><\/div>\n                                <span class=\"icon-header\">400<\/span>\n                                <span class=\"icon-text\">Ports in use<br>Available ports<\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    \n\n            \n            \n            <div\n                                class=\"banner-type-1 position-relative \"\n                style=\"background-color: #000000; box-shadow: 0 0 0 100vmax #000000; clip-path: inset(0 -100vmax);\"\n            >\n                <img decoding=\"async\" class=\"banner-type-1__image position-relative d-none d-sm-block\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2026\/03\/banner-type-12-desktop-1.png\" style=\"max-height: 360px; width: auto; min-width: 0; max-width: none; margin-left: auto; margin-right: 0; left: 0; transform: none; display: block;\"\/>\n                <div\n                    class=\"banner-type-1__background-mobile d-sm-none position-absolute\"\n                    style=\"background-color: #000000\"\n                ><\/div>\n                <div class=\"banner-type-1__feed position-sm-absolute d-flex flex-column py-4 py-md-3 py-sm-0\">\n                    <div class=\"h-sm-60 d-flex align-items-end\">\n                                                    <h2 class=\"banner-type-1__title text-white banner-type-1__title_6a222d59cee9f\">\n                                Join TPIX!<br>Fill out the form and our consultant will contact you as soon as possible                            <\/h2>\n                                            <\/div>\n                    <div class=\"h-sm-40\">\n                                                                            <a                                href=\"\/tpix\/en\/contact\/\"                                                                class=\"button button-large button-orange btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none mt-3\"\n                            >\n                Contact us            <\/a>\n                                                    <\/div>\n                <\/div>\n            <\/div>\n        \n\n                <div  class=\"newests-posts3 pl-0 pr-0 pl-0\n                pb-5\">\n            <div class=\"my-1 my-sm-3\">\n\n                                    <div class=\"d-flex justify-content-between align-items-center mt-5 mb-3 mb-sm-3 mb-lg-2 pb-1 pb-sm-3 pb-lg-4\">\n                        <h2 class=\"newests-posts3__title mb-0\">News<\/h2>\n                        <a href=\"https:\/\/hurt-orange.pl\/tpix\/news\" class=\"font-weight-bold\">See all news<\/a>\n                    <\/div>\n                \n                                                                                \n                            <div class=\"row\">\n                            <div class=\"col-12 col-lg-6\">\n                                        <div class=\"h-100 featured-post d-flex align-items-stretch flex-column\">\n        <div class=\"hero-image-container\">\n                            <img decoding=\"async\" class=\"img-fluid hero-image\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/IMG_216330_TPIX_zajawka-1000x570-1.jpg\" alt=\"\"\/>\n                    <\/div>\n        <div class=\"news-content h-100\">\n            <h3 class=\"newests-posts3__item__title featured-title\">Private peering with Meta Platforms (Facebook)<\/h3>\n            <small>2025-04-01<\/small>\n            <p class=\"newests-posts3__item__sneak-peak mb-3 mt-3 featured-post-content\">Meta Platforms (Facebook) AS 32934, moves to private sessions. We invite you to familiarize yourself with the rules for setting up private peering.<\/p>\n                                    <a                                href=\"https:\/\/hurt-orange.pl\/tpix\/2025\/04\/private-peering-with-meta-platforms-facebook\/\"                                                                class=\"button button-small button-orange btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none \"\n                            >\n                See more            <\/a>\n        \n        <\/div>\n    <\/div>\n                                <\/div>\n                            <div class=\"col-12 col-lg-6 pt-lg-0 pt-5\">\n                                                \n                    \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Maintenance work on 2026-02-19<\/h3>\n                <small>2026-02-11<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    2026-02-19 from 04:00 to 06:00 there will be maintenance work on route server tpix-rs2.\nBGP sessions will be disabled for approximately 15 minutes.                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2026\/02\/maintenance-work-on-2026-02-19\/\" title=\"Maintenance work on 2026-02-19\"><strong>more<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Emergency switch replacement 2025-10-04<\/h3>\n                <small>2025-10-06<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    Due to a hardware failure, we had to replace the switch war_lx6 (location LIM Center, 1st floor).\nThe failures had an impact on the links of several customers, and access to SGT television.                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2025\/10\/emergency-switch-replacement-2025-10-04\/\" title=\"Emergency switch replacement 2025-10-04\"><strong>more<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Maintenance work on 2025-06-26<\/h3>\n                <small>2025-06-12<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    2025-06-26 from 00:00 to 02:00 there will be maintenance work on TPIX route servers.\nDuring this maintenance, BGP sessions will be restarted.                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2025\/06\/maintenance-work-on-2025-06-26\/\" title=\"Maintenance work on 2025-06-26\"><strong>more<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                    <\/div><\/div>\n                            <\/div>\n        <\/div>\n    \n\n                        <div\n                                class=\"boxes-grid-type-3 boxes-grid-type-3__spacing--p position-relative\"\n            >\n                <div>\n                    <div class=\"boxes-grid-type-3__background position-absolute\"><\/div>\n                                            <div class=\"d-flex justify-content-between mb-3 mb-sm-3 mb-lg-2 pb-1 pb-sm-3 pb-lg-4\">\n                            <h2 class=\"boxes-grid-type-3__title mb-0\">Why choose TPIX?<\/h2>\n                        <\/div>\n                                        <div class=\"boxes-grid-type-3__boxes row mx-0\">\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Money-box-F16E00-50x50-1.png\" alt=\"You save\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            You save                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>When you buy WDM transport from us, you get a VLAN for TPIX open peering for the price of the transmission itself, without additional fees.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Cyberfilter-F16E00-50x41-1.png\" alt=\"You insure yourself technologically\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            You insure yourself technologically                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>TPIX allows you to quickly respond to a changing situation, adding bandwidth or additional VLANs if necessary or a sudden increase in network traffic.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/internet_browser_F16E00-50x50-1.png\" alt=\"You improve the quality of internet sources\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            You improve the quality of internet sources                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>Two traffic providers instead of one means a higher quality internet for your customers and a more reliable network.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        ","protected":false},"excerpt":{"rendered":"<p>Stable and secure exchange of IP traffic<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":true,"footnotes":""},"categories":[],"tags":[],"class_list":["post-18830","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TPIX<\/title>\n<meta name=\"description\" content=\"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hurt-orange.pl\/tpix\/en\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TPIX open peering\" \/>\n<meta property=\"og:description\" content=\"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hurt-orange.pl\/tpix\/en\/\" \/>\n<meta property=\"og:site_name\" content=\"TPIX\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-01T11:45:36+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/en\\\/\",\"url\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/en\\\/\",\"name\":\"TPIX open peering\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#website\"},\"datePublished\":\"2022-10-17T08:03:25+00:00\",\"dateModified\":\"2025-04-01T11:45:36+00:00\",\"description\":\"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world\",\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/en\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#website\",\"url\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/\",\"name\":\"TPIX\",\"description\":\"Platforma wymiany ruchu internetowego\",\"publisher\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#organization\",\"name\":\"TPIX\",\"url\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logo.png\",\"caption\":\"TPIX\"},\"image\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TPIX","description":"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hurt-orange.pl\/tpix\/en\/","og_locale":"pl_PL","og_type":"article","og_title":"TPIX open peering","og_description":"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world","og_url":"https:\/\/hurt-orange.pl\/tpix\/en\/","og_site_name":"TPIX","article_modified_time":"2025-04-01T11:45:36+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hurt-orange.pl\/tpix\/en\/","url":"https:\/\/hurt-orange.pl\/tpix\/en\/","name":"TPIX open peering","isPartOf":{"@id":"http:\/\/172.104.150.138\/tpix\/#website"},"datePublished":"2022-10-17T08:03:25+00:00","dateModified":"2025-04-01T11:45:36+00:00","description":"Stable and secure exchange of IP traffic - content - television - multimedia - internet - world","inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hurt-orange.pl\/tpix\/en\/"]}]},{"@type":"WebSite","@id":"http:\/\/172.104.150.138\/tpix\/#website","url":"http:\/\/172.104.150.138\/tpix\/","name":"TPIX","description":"Platforma wymiany ruchu internetowego","publisher":{"@id":"http:\/\/172.104.150.138\/tpix\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/172.104.150.138\/tpix\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"http:\/\/172.104.150.138\/tpix\/#organization","name":"TPIX","url":"http:\/\/172.104.150.138\/tpix\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"http:\/\/172.104.150.138\/tpix\/#\/schema\/logo\/image\/","url":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2020\/11\/logo.png","contentUrl":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2020\/11\/logo.png","caption":"TPIX"},"image":{"@id":"http:\/\/172.104.150.138\/tpix\/#\/schema\/logo\/image\/"}}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages\/18830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/comments?post=18830"}],"version-history":[{"count":0,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages\/18830\/revisions"}],"wp:attachment":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/media?parent=18830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/categories?post=18830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/tags?post=18830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}