প্রকল্প সম্পর্কে
মিডিয়া ট্রান্সপোর্ট লাইব্রেরি (MTL) হলো একটি ওপেন-সোর্স, সফটওয়্যার-ভিত্তিক মিডিয়া ট্রান্সপোর্ট স্ট্যাক যা আইপি নেটওয়ার্কের মাধ্যমে উচ্চ-থ্রুপুট, কম-লেটেন্সি মিডিয়া ডেটা প্রেরণ ও গ্রহণের লক্ষ্যে তৈরি। এতে ব্যবস্থাপিত আইপি নেটওয়ার্কে পেশাদার মিডিয়ার জন্য SMPTE ST 2110 স্যুটের একটি অন্তর্নির্মিত বাস্তবায়ন রয়েছে এবং এটি বিশেষায়িত যন্ত্রপাতির পরিবর্তে বাণিজ্যিক অফ-দ্য-শেল্ফ (COTS) হার্ডওয়্যারে চালানোর জন্য ডিজাইন করা হয়েছে।
পদ্ধতি ও স্থাপত্য
MTL সাধারণ CPU প্ল্যাটফর্ম এবং রেট-লিমিটিং ক্ষমতাসম্পন্ন প্রচলিত NIC ব্যবহার করে ST 2110 স্ট্রিমের কঠোর সময়সীমার প্রয়োজনীয়তা সফটওয়্যারে সমাধান করে। এটি মেমরি ও কোর ব্যবস্থাপনার জন্য DPDK-এর এনভায়রনমেন্ট অ্যাবস্ট্রাকশন লেয়ারের উপর ভিত্তি করে এবং একটি ভার্চুয়াল ডেটা পাথ ব্যাকএন্ড স্তর প্রবর্তন করে যা উপরের স্তরগুলিতে একটি সমন্বিত প্যাকেট TX/RX ইন্টারফেস উপস্থাপন করে। তিন ধরনের ব্যাকএন্ড সমর্থিত:
- DPDK পোল-মোড ড্রাইভার (PMD), যা সরাসরি হার্ডওয়্যার অ্যাক্সেসের জন্য কার্নেল নেটওয়ার্কিং স্ট্যাককে বাইপাস করে এবং ব্যবহারকারী/কার্নেল কনটেক্সট সুইচ ও IRQ হ্যান্ডলিং এড়ায়।
- নেটিভ লিনাক্স কার্নেল নেটওয়ার্ক সকেট স্ট্যাক, বিস্তৃত কার্নেল ইকোসিস্টেমের সাথে সামঞ্জস্যের জন্য।
- eBPF ফিল্টার সহ AF_XDP, যা পারফরম্যান্স এবং কার্নেল ইন্টিগ্রেশনের মধ্যে ভারসাম্য রাখে।
CPU ব্যবহার অপ্টিমাইজ করতে এবং প্যাকেট প্রসেসিং ইউনিট ও অ্যাক্সিলারেটরের সাথে সংহত করতে একটি টাস্কলেট-ভিত্তিক অ্যাসিঙ্ক্রোনাস শিডিউলার ব্যবহৃত হয়। প্যাকেট পেসিং একাধিক অ্যালগরিদম সমর্থন করে, যার মধ্যে RL (রেট লিমিট) আংশিকভাবে হার্ডওয়্যার-অফলোডেড এবং TSC (টাইমস্ট্যাম্প কাউন্টার) সম্পূর্ণ সফটওয়্যার-ভিত্তিক। DMA এবং প্লাগইন ইন্টারফেসের পাশাপাশি বিগ-এন্ডিয়ান/লিটল-এন্ডিয়ান কালার স্পেস রূপান্তরের জন্য SIMD ব্যবহৃত হয়।
বৈশিষ্ট্য
- ডেটা পাথ ব্যাকএন্ড: DPDK PMD, নেটিভ কার্নেল সকেট এবং eBPF ফিল্টার সহ AF_XDP।
- নন-রুট অপারেশন।
- মাল্টি-প্রসেস হ্যান্ডলিং, প্রতি প্রসেসে সর্বোচ্চ 8টি NIC।
- SR-IOV এর মাধ্যমে ভার্চুয়ালাইজেশন সমর্থন।
- হার্ডওয়্যার টাইমস্ট্যাম্প অফলোড সহ অন্তর্নির্মিত PTP প্রোটোকল।
- FFmpeg প্লাগইন, OBS (ওপেন ব্রডকাস্টার সফটওয়্যার) প্লাগইন এবং ইন্টেল মিডিয়া SDK সমর্থন।
- নেটিভ C/C++ API-সহ Python এবং Rust বাইন্ডিং।
ST 2110 ক্ষমতা
- সংকীর্ণ ও প্রশস্ত পেসিং, সফটওয়্যার সমাধানে সংকীর্ণ পেসিংয়ের জন্য একটি প্রকাশিত সামঞ্জস্য প্রতিবেদন সহ।
- ST 2110-10, -20, -21, -30, -40 এবং ST 2022-7।
- 1080p, 1080i, 720p, 4K এবং 8K সহ রেজোলিউশন।
- ফ্রেম রেট: 120, 119.88, 100, 60, 59.94, 50, 30, 29.97, 25, 24 এবং 23.98।
- ST 2110-20-এ তালিকাভুক্ত সমস্ত ভিডিও ফরম্যাট, YUV 4:2:2 10-বিট সহ।
- বিগ-এন্ডিয়ান এবং লিটল-এন্ডিয়ানের মধ্যে SIMD কালার স্পেস কনভার্টার।
- এনকোডার/ডিকোডার প্লাগইন ইন্টারফেস সহ ST 2110-22।
- RTP পাসথ্রু ইন্টারফেসের মাধ্যমে ST 2022-6।
- হার্ডওয়্যার RX টাইমস্ট্যাম্প অফলোড সহ ST 2110-20 RX টাইমিং সামঞ্জস্য পার্সার।
হার্ডওয়্যার নোট
ইথারনেট সমর্থন নির্বাচিত ব্যাকএন্ডের উপর নির্ভর করে। DPDK PMD-এর জন্য, সমর্থিত হার্ডওয়্যার তালিকা DPDK প্রকল্প দ্বারা রক্ষণাবেক্ষণ করা হয়। যদি একটি NIC DPDK দ্বারা সমর্থিত না হয়, তাহলে কার্নেল সকেট ট্রান্সপোর্ট একটি ফলব্যাক হিসাবে উপলব্ধ। প্রকল্পটি জানায় যে দৈনিক উন্নয়ন এবং বৈধতা ইন্টেল E810 এবং E830 সিরিজ কার্ডের উপর কেন্দ্রীভূত, এবং অন্যান্য NIC-তে আচরণ নিশ্চিত নয়। সংকীর্ণ TX পেসিং শুধুমাত্র রেট-লিমিট বৈশিষ্ট্যের কারণে DPDK PMD সহ ইন্টেল E810/E830-তে সমর্থিত; অন্যান্য কনফিগারেশনকে অবশ্যই TSC পেসিং উৎস হিসাবে ব্যবহার করতে হবে, যা শুধুমাত্র প্রশস্ত পেসিং প্রদান করে।
নির্মাণ ও চালানো
DPDK, লাইব্রেরি এবং নমুনা অ্যাপ্লিকেশনগুলির জন্য নির্মাণ নির্দেশাবলী প্রকল্পের বিল্ড গাইডে প্রদান করা হয়েছে, সাথে একটি পৃথক উইন্ডোজ বিল্ড গাইড রয়েছে। DPDK PMD ব্যাকএন্ডের উপর ভিত্তি করে ST 2110 ডেমো পাইপলাইন চালানো রান গাইডে আচ্ছাদিত, সাথে উইন্ডোজ, লিনাক্স এবং VF পাসথ্রু ব্যবহার করে উইন্ডোজ গেস্ট VM, AWS ক্লাউড পরিবেশ এবং কার্নেল সকেট পাথের জন্য অতিরিক্ত গাইড রয়েছে। একটি ফাজিং গাইডও অন্তর্ভুক্ত।
উন্নয়ন ও অবদান
অ্যাপ্লিকেশনগুলি ডিজাইন গাইডে বর্ণিত ST 2110 API-এর বিরুদ্ধে বিকাশ করা যেতে পারে। রিপোজিটরিটি ফর্কিং, ব্রাঞ্চিং এবং পুল রিকোয়েস্টের উপর ভিত্তি করে একটি অবদান কর্মপ্রবাহ নথিভুক্ত করে এবং একটি একক চেকপ্যাচ স্ক্রিপ্ট প্রদান করে যা প্রি-কমিটের মাধ্যমে পিন করা টুলিং ইনস্টল করে, কমিটে চেক চালায় এবং সমস্ত ট্র্যাক করা ফাইল যাচাই করে। ফরম্যাটিং অটোফিক্স একটি সহচর স্ক্রিপ্ট দিয়ে প্রয়োগ করা হয়। কোডিং স্ট্যান্ডার্ড ডকুমেন্টটি নিয়ম এবং প্রতিটি চেক কোথায় চলে তার রেফারেন্স। পুল রিকোয়েস্ট খোলার আগে, অবদানকারীদের ফরম্যাটিং এবং চেক পরিষ্কার না হওয়া পর্যন্ত চালাতে, বিল্ড এবং ইউনিট পরীক্ষা পাস নিশ্চিত করতে, পরিবর্তনটি ধরতে পারে এমন সস্তা স্তরে একটি পরীক্ষা যোগ করতে (ইউনিট, VF সহ ইন্টিগ্রেশন, বা এন্ড-টু-এন্ড গ্রহণযোগ্যতা) এবং কনভেনশনাল কমিটস-স্টাইল বার্তা ব্যবহার করতে বলা হয়।
প্রকল্পের অবস্থা ও লাইসেন্সিং
প্রকল্পটি উল্লেখ করে যে মূল শাখার সোর্স কোড এবং বৈশিষ্ট্যগুলি পরীক্ষা বা মূল্যায়নের উদ্দেশ্যে এবং উৎপাদনের জন্য প্রস্তুত নয়, মূল্যায়নকৃত কোড রিলিজ সংস্করণ দ্বারা ট্যাগ করা হয়। এটি BSD 3-ক্লজের অধীনে লাইসেন্সপ্রাপ্ত এবং OpenSSF স্কোরকার্ড ও বেস্ট প্র্যাকটিস ব্যাজ, সাথে বেস বিল্ড, Coverity, লিন্টার, Trivy এবং ডিপেন্ডেন্সি রিভিউয়ের জন্য CI ব্যাজ বহন করে। সম্পর্কিত প্রকাশনার মধ্যে রয়েছে একটি MHV'23 পেপার, একটি ইন্টেল হোয়াইটপেপার এবং একটি 2022 DPDK ইউজারস্পেস সামিট আলোচনা।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.