জ্যাম সনাক্তকরণ

GitHub-এ উৎস দেখুন

যেকোনো OpenThread নোডে সিগন্যাল জ্যামিং সনাক্তকরণের জন্য একটি কনফিগারযোগ্য প্রক্রিয়া প্রদান করতে, জ্যাম সনাক্তকরণ বৈশিষ্ট্য সক্রিয় করুন।

এই বৈশিষ্ট্যটি ডিভাইস সার্টিফিকেশনের জন্য উপযোগী যার জন্য একটি নির্দিষ্ট চ্যানেলে সিগন্যাল জ্যামিং সনাক্ত করার ক্ষমতা প্রয়োজন। প্রতিটি ধরনের সার্টিফিকেশনের প্রয়োজনীয়তা মেটাতে এটি কনফিগার করা যেতে পারে।

কিভাবে এটা কাজ করে

জ্যাম সনাক্তকরণ চ্যানেলটি জ্যাম করা হয়েছে কিনা তা নির্ধারণ করতে নির্দিষ্ট সময়ে একটি নোডের RSSI (প্রাপ্ত সংকেত শক্তি নির্দেশক) পর্যবেক্ষণ করে।

যখন জ্যাম সনাক্তকরণ সক্ষম করা হয়:

  1. জ্যাম সনাক্তকরণের অবস্থা false সেট করা হয়েছে।
  2. নোড প্রতিটি এক সেকেন্ডের ব্যবধানে একাধিকবার RSSI নমুনা করে।
  3. যদি RSSI পুরো এক সেকেন্ডের ব্যবধানে প্রতিটি নমুনার জন্য কনফিগার করা RSSI থ্রেশহোল্ডের উপরে থাকে, তাহলে সেই এক সেকেন্ডের ব্যবধানকে জ্যাম করা বলে মনে করা হয়।
  4. জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা যেকোনো সময়ে পূর্ববর্তী কনফিগার করা সনাক্তকরণ উইন্ডো সেকেন্ডের মধ্যে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের সমষ্টি সংখ্যার বেশি বা সমান হলে , সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা true হিসাবে সেট করা হয়।
  5. জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা পূর্ববর্তী কনফিগার করা ডিটেকশন উইন্ডো সেকেন্ডের মধ্যে যেকোন সময়ে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের মোট সংখ্যার চেয়ে কম হলে, সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা false সেট করা হয়।

ইতিহাস বিটম্যাপ

OpenThread API এবং wpantund বৈশিষ্ট্যে , পূর্ববর্তী 63 সেকেন্ডের একটি বিটম্যাপ পুনরুদ্ধারের জন্য উপলব্ধ। এই বিটম্যাপটি নির্দেশ করে যে RSSI পূর্ববর্তী 63 সেকেন্ডের প্রতিটিতে কনফিগার করা RSSI থ্রেশহোল্ড অতিক্রম করেছে কিনা।

উদাহরণস্বরূপ, আপনি নিম্নলিখিত বিটম্যাপ পুনরুদ্ধার করতে পারেন:

0xC248068C416E7FF0

বাইনারিতে রূপান্তর করার ফলে RSSI পূর্ববর্তী 63 সেকেন্ডে কনফিগার করা RSSI থ্রেশহোল্ডের উপরে চলে যাওয়া প্রতিটি উদাহরণ তৈরি করে:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

যদি সনাক্তকরণ উইন্ডোটি 16 সেকেন্ডে সেট করা হয়, এবং ব্যস্ত সময়কাল 8 সেকেন্ডে সেট করা হয়, তবে জ্যাম সনাক্তকরণের অবস্থা 51 সেকেন্ডে true হয়ে যায়, কারণ এটিই প্রথম উদাহরণ যেখানে RSSI থ্রেশহোল্ড পূর্ববর্তী সময়ে কমপক্ষে 8 সম্পূর্ণ সেকেন্ড অতিক্রম করেছিল 16 সেকেন্ড। এই উদাহরণে, জ্যাম সনাক্তকরণ অবস্থা পরবর্তী 13 সেকেন্ডের জন্য true থাকে।

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

এই বিটম্যাপ নিম্নলিখিত গ্রাফ দ্বারা প্রতিনিধিত্ব করা যেতে পারে, যদি -45 dBm কনফিগার করা RSSI থ্রেশহোল্ড হয়:

ওটি জ্যাম সনাক্তকরণ

কিভাবে সক্রিয় করতে হবে

এই বৈশিষ্ট্যটি ডিফল্টরূপে অক্ষম করা হয়৷

সংজ্ঞায়িত করে

জ্যাম সনাক্তকরণ সক্ষম করতে, OpenThread তৈরি করার আগে openthread/src/core/config/openthread-core-default-config.h ফাইলে OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE কে 1 হিসাবে সংজ্ঞায়িত করুন :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

বিকল্প দ্বারা

বিকল্পভাবে, OpenThread তৈরি করার সময় -DOT_JAM_DETECTION -DOT_JAM_DETECTION=ON বিল্ড বিকল্পটি ব্যবহার করুন:

./script/build -DOT_JAM_DETECTION=ON

পরামিতি

জ্যাম সনাক্তকরণ পরামিতি শুধুমাত্র OpenThread API, Spinel প্রোটোকল, অথবা wpanctl , নেটওয়ার্ক কো-প্রসেসর (NCP) পরিচালনার জন্য wpantund কমান্ড লাইন টুলের মাধ্যমে কনফিগার করা যেতে পারে। পরবর্তী কনফিগারেশন ছাড়াই বৈশিষ্ট্যটি সক্ষম হলে ডিফল্ট মান প্রয়োগ করা হয়।

নিম্নলিখিত পরামিতি ব্যবহার করে এই বৈশিষ্ট্যটি কাস্টমাইজ করুন:

পরামিতি
RSSI থ্রেশহোল্ড
ডিফল্ট মান
0 dBm
বর্ণনা
dBm-এ থ্রেশহোল্ড RSSI স্তর নির্দিষ্ট করে যার উপরে চ্যানেল জ্যাম করা বিবেচনা করা হবে।
সনাক্তকরণ উইন্ডো
ডিফল্ট মান
63 সেকেন্ড
বর্ণনা
সেকেন্ডের মধ্যে উইন্ডোটি নির্দিষ্ট করে যেখানে সিগন্যাল জ্যামিং পরীক্ষা করতে হবে। পরিসীমা: 1-63।
ব্যস্ত সময়কাল
ডিফল্ট মান
63 সেকেন্ড
বর্ণনা
সনাক্তকরণ উইন্ডোর মধ্যে মোট সেকেন্ডের সংখ্যা নির্দিষ্ট করে যেখানে জ্যাম সনাক্তকরণ ট্রিগার করার জন্য RSSI RSSI থ্রেশহোল্ডের উপরে থাকতে হবে। সনাক্তকরণ উইন্ডোর চেয়ে ছোট হতে হবে। পরিসীমা: 1-63।

API

ওপেন থ্রেড

আপনার OpenThread অ্যাপ্লিকেশনে সরাসরি জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে জ্যাম সনাক্তকরণ API ব্যবহার করুন। OpenThread API নিম্নলিখিত কার্যকারিতা প্রদান করে:

  • বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
  • জ্যাম সনাক্তকরণ অবস্থা দেখুন
  • সমস্ত পরামিতি পরিচালনা করুন
  • বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন
  • যখন একটি জ্যাম সনাক্ত করা হয় তখন একটি কলব্যাক ফাংশন নিবন্ধন করুন৷

স্পিনেল

স্পিনেল প্রোটোকল একটি হোস্ট ডিভাইসকে NCP এর সাথে সরাসরি যোগাযোগ করতে সক্ষম করে। এই প্রোটোকল openthread/src/lib/spinel/spinel.h এ জ্যাম সনাক্তকরণ বৈশিষ্ট্যগুলিকে প্রকাশ করে যা নিম্নলিখিত কার্যকারিতা প্রদান করে:

  • বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
  • জ্যাম সনাক্তকরণ অবস্থা দেখুন
  • সমস্ত পরামিতি পরিচালনা করুন
  • বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন

সিএলআই

ওপেন থ্রেড

এই বৈশিষ্ট্যের সাথে সম্পর্কিত কোন OpenThread CLI কমান্ড নেই।

wpantund

একটি OpenThread NCP কনফিগারেশনের জন্য জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে wpanctl CLI ব্যবহার করুন। wpantund NCP রিসেট করার পরে সমস্ত জ্যাম সনাক্তকরণ কনফিগারেশন ধরে রাখে।

wpanctl নিম্নলিখিত wpantund বৈশিষ্ট্যগুলিতে অ্যাক্সেস প্রদান করে:

বৈশিষ্ট্য
JamDetection:Status
বিন্যাস
বুলিয়ান
বর্ণনা
শুধুমাত্র পাঠযোগ্য. জ্যাম সনাক্তকরণ অবস্থা। বর্তমানে একটি সিগন্যাল জ্যাম সনাক্ত করা হয়েছে কিনা তা নির্দেশ করে৷
JamDetection:Enable
বিন্যাস
বুলিয়ান
বর্ণনা
জ্যাম সনাক্তকরণ বৈশিষ্ট্য সক্ষম বা অক্ষম করুন।
JamDetection:RssiThreshold
বিন্যাস
dBm
বর্ণনা
dBm-এ থ্রেশহোল্ড RSSI স্তর নির্দিষ্ট করে যার উপরে চ্যানেলটিকে অবরুদ্ধ বিবেচনা করতে হবে।
JamDetection:Window
বিন্যাস
সেকেন্ড
বর্ণনা
সেকেন্ডের মধ্যে উইন্ডোটি নির্দিষ্ট করে যেখানে সিগন্যাল জ্যামিং পরীক্ষা করতে হবে। পরিসীমা: 1-63।
JamDetection:BusyPeriod
বিন্যাস
সেকেন্ড
বর্ণনা
JamDetection-এর মধ্যে মোট সেকেন্ডের সংখ্যা নির্দিষ্ট করে: যে JamDetection:Window RSSI অবশ্যই JamDetection:RssiThreshold উপরে থাকতে হবে। JamDetection:Window থেকে ছোট হতে হবে। পরিসীমা: 1-63।
JamDetection:Debug:HistoryBitmap
বিন্যাস
64-বিট মান
বর্ণনা
নিরীক্ষণ এবং ডিবাগিং উদ্দেশ্যে জ্যাম সনাক্তকরণ রাজ্য ইতিহাস সম্পর্কে তথ্য প্রদান করে।

উদাহরণস্বরূপ, একটি NCP-এর জন্য জ্যাম সনাক্তকরণ রাজ্য পেতে:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

একটি NCP-তে জ্যাম সনাক্তকরণ RSSI থ্রেশহোল্ড -45 dBm-এ সেট করতে:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

wpantund বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, wpantund GitHub সংগ্রহস্থল দেখুন।

,

GitHub-এ উৎস দেখুন

যেকোনো OpenThread নোডে সিগন্যাল জ্যামিং সনাক্তকরণের জন্য একটি কনফিগারযোগ্য প্রক্রিয়া প্রদান করতে, জ্যাম সনাক্তকরণ বৈশিষ্ট্য সক্রিয় করুন।

এই বৈশিষ্ট্যটি ডিভাইস সার্টিফিকেশনের জন্য উপযোগী যার জন্য একটি নির্দিষ্ট চ্যানেলে সিগন্যাল জ্যামিং সনাক্ত করার ক্ষমতা প্রয়োজন। প্রতিটি ধরনের সার্টিফিকেশনের প্রয়োজনীয়তা মেটাতে এটি কনফিগার করা যেতে পারে।

কিভাবে এটা কাজ করে

জ্যাম সনাক্তকরণ চ্যানেলটি জ্যাম করা হয়েছে কিনা তা নির্ধারণ করতে নির্দিষ্ট সময়ে একটি নোডের RSSI (প্রাপ্ত সংকেত শক্তি নির্দেশক) পর্যবেক্ষণ করে।

যখন জ্যাম সনাক্তকরণ সক্ষম করা হয়:

  1. জ্যাম সনাক্তকরণের অবস্থা false সেট করা হয়েছে।
  2. নোড প্রতিটি এক সেকেন্ডের ব্যবধানে একাধিকবার RSSI নমুনা করে।
  3. যদি RSSI পুরো এক সেকেন্ডের ব্যবধানে প্রতিটি নমুনার জন্য কনফিগার করা RSSI থ্রেশহোল্ডের উপরে থাকে, তাহলে সেই এক সেকেন্ডের ব্যবধানকে জ্যাম করা বলে মনে করা হয়।
  4. জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা যেকোনো সময়ে পূর্ববর্তী কনফিগার করা সনাক্তকরণ উইন্ডো সেকেন্ডের মধ্যে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের সমষ্টি সংখ্যার বেশি বা সমান হলে , সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা true হিসাবে সেট করা হয়।
  5. জ্যাম করা এক সেকেন্ডের ব্যবধানের সামগ্রিক সংখ্যা পূর্ববর্তী কনফিগার করা ডিটেকশন উইন্ডো সেকেন্ডের মধ্যে যেকোন সময়ে কনফিগার করা ব্যস্ত সময়ের সেকেন্ডের মোট সংখ্যার চেয়ে কম হলে, সেই সময়ে জ্যাম সনাক্তকরণের অবস্থা false সেট করা হয়।

ইতিহাস বিটম্যাপ

OpenThread API এবং wpantund বৈশিষ্ট্যে , পূর্ববর্তী 63 সেকেন্ডের একটি বিটম্যাপ পুনরুদ্ধারের জন্য উপলব্ধ। এই বিটম্যাপটি নির্দেশ করে যে RSSI পূর্ববর্তী 63 সেকেন্ডের প্রতিটিতে কনফিগার করা RSSI থ্রেশহোল্ড অতিক্রম করেছে কিনা।

উদাহরণস্বরূপ, আপনি নিম্নলিখিত বিটম্যাপ পুনরুদ্ধার করতে পারেন:

0xC248068C416E7FF0

বাইনারিতে রূপান্তর করার ফলে RSSI পূর্ববর্তী 63 সেকেন্ডে কনফিগার করা RSSI থ্রেশহোল্ডের উপরে চলে যাওয়া প্রতিটি উদাহরণ তৈরি করে:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

যদি সনাক্তকরণ উইন্ডোটি 16 সেকেন্ডে সেট করা হয়, এবং ব্যস্ত সময়কাল 8 সেকেন্ডে সেট করা হয়, তবে জ্যাম সনাক্তকরণের অবস্থা 51 সেকেন্ডে true হয়ে যায়, কারণ এটিই প্রথম উদাহরণ যেখানে RSSI থ্রেশহোল্ড পূর্ববর্তী সময়ে কমপক্ষে 8 সম্পূর্ণ সেকেন্ড অতিক্রম করেছিল 16 সেকেন্ড। এই উদাহরণে, জ্যাম সনাক্তকরণ অবস্থা পরবর্তী 13 সেকেন্ডের জন্য true থাকে।

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

এই বিটম্যাপ নিম্নলিখিত গ্রাফ দ্বারা প্রতিনিধিত্ব করা যেতে পারে, যদি -45 dBm কনফিগার করা RSSI থ্রেশহোল্ড হয়:

ওটি জ্যাম সনাক্তকরণ

কিভাবে সক্রিয় করতে হবে

এই বৈশিষ্ট্যটি ডিফল্টরূপে অক্ষম করা হয়৷

সংজ্ঞায়িত করে

জ্যাম সনাক্তকরণ সক্ষম করতে, OpenThread তৈরি করার আগে openthread/src/core/config/openthread-core-default-config.h ফাইলে OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE কে 1 হিসাবে সংজ্ঞায়িত করুন :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

বিকল্প দ্বারা

বিকল্পভাবে, OpenThread তৈরি করার সময় -DOT_JAM_DETECTION -DOT_JAM_DETECTION=ON বিল্ড বিকল্পটি ব্যবহার করুন:

./script/build -DOT_JAM_DETECTION=ON

পরামিতি

জ্যাম সনাক্তকরণ পরামিতি শুধুমাত্র OpenThread API, Spinel প্রোটোকল, অথবা wpanctl , নেটওয়ার্ক কো-প্রসেসর (NCP) পরিচালনার জন্য wpantund কমান্ড লাইন টুলের মাধ্যমে কনফিগার করা যেতে পারে। পরবর্তী কনফিগারেশন ছাড়াই বৈশিষ্ট্যটি সক্ষম হলে ডিফল্ট মান প্রয়োগ করা হয়।

নিম্নলিখিত পরামিতি ব্যবহার করে এই বৈশিষ্ট্যটি কাস্টমাইজ করুন:

পরামিতি
RSSI থ্রেশহোল্ড
ডিফল্ট মান
0 dBm
বর্ণনা
dBm-এ থ্রেশহোল্ড RSSI স্তর নির্দিষ্ট করে যার উপরে চ্যানেল জ্যাম করা বিবেচনা করা হবে।
সনাক্তকরণ উইন্ডো
ডিফল্ট মান
63 সেকেন্ড
বর্ণনা
সেকেন্ডের মধ্যে উইন্ডোটি নির্দিষ্ট করে যেখানে সিগন্যাল জ্যামিং পরীক্ষা করতে হবে। পরিসীমা: 1-63।
ব্যস্ত সময়কাল
ডিফল্ট মান
63 সেকেন্ড
বর্ণনা
সনাক্তকরণ উইন্ডোর মধ্যে মোট সেকেন্ডের সংখ্যা নির্দিষ্ট করে যেখানে জ্যাম সনাক্তকরণ ট্রিগার করার জন্য RSSI RSSI থ্রেশহোল্ডের উপরে থাকতে হবে। সনাক্তকরণ উইন্ডোর চেয়ে ছোট হতে হবে। পরিসীমা: 1-63।

API

ওপেন থ্রেড

আপনার OpenThread অ্যাপ্লিকেশনে সরাসরি জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে জ্যাম সনাক্তকরণ API ব্যবহার করুন। OpenThread API নিম্নলিখিত কার্যকারিতা প্রদান করে:

  • বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
  • জ্যাম সনাক্তকরণ অবস্থা দেখুন
  • সমস্ত পরামিতি পরিচালনা করুন
  • বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন
  • যখন একটি জ্যাম সনাক্ত করা হয় তখন একটি কলব্যাক ফাংশন নিবন্ধন করুন৷

স্পিনেল

স্পিনেল প্রোটোকল একটি হোস্ট ডিভাইসকে NCP এর সাথে সরাসরি যোগাযোগ করতে সক্ষম করে। এই প্রোটোকল openthread/src/lib/spinel/spinel.h এ জ্যাম সনাক্তকরণ বৈশিষ্ট্যগুলিকে প্রকাশ করে যা নিম্নলিখিত কার্যকারিতা প্রদান করে:

  • বৈশিষ্ট্যটি শুরু করুন এবং বন্ধ করুন
  • জ্যাম সনাক্তকরণ অবস্থা দেখুন
  • সমস্ত পরামিতি পরিচালনা করুন
  • বর্তমান জ্যাম সনাক্তকরণ ইতিহাস বিটম্যাপ পুনরুদ্ধার করুন

সিএলআই

ওপেন থ্রেড

এই বৈশিষ্ট্যের সাথে সম্পর্কিত কোন OpenThread CLI কমান্ড নেই।

wpantund

একটি OpenThread NCP কনফিগারেশনের জন্য জ্যাম সনাক্তকরণ বৈশিষ্ট্য পরিচালনা করতে wpanctl CLI ব্যবহার করুন। wpantund NCP রিসেট করার পরে সমস্ত জ্যাম সনাক্তকরণ কনফিগারেশন ধরে রাখে।

wpanctl নিম্নলিখিত wpantund বৈশিষ্ট্যগুলিতে অ্যাক্সেস প্রদান করে:

বৈশিষ্ট্য
JamDetection:Status
বিন্যাস
বুলিয়ান
বর্ণনা
শুধুমাত্র পাঠযোগ্য. জ্যাম সনাক্তকরণ অবস্থা। বর্তমানে একটি সিগন্যাল জ্যাম সনাক্ত করা হয়েছে কিনা তা নির্দেশ করে৷
JamDetection:Enable
বিন্যাস
বুলিয়ান
বর্ণনা
জ্যাম সনাক্তকরণ বৈশিষ্ট্য সক্ষম বা অক্ষম করুন।
JamDetection:RssiThreshold
বিন্যাস
dBm
বর্ণনা
dBm-এ থ্রেশহোল্ড RSSI স্তর নির্দিষ্ট করে যার উপরে চ্যানেলটিকে অবরুদ্ধ বিবেচনা করতে হবে।
JamDetection:Window
বিন্যাস
সেকেন্ড
বর্ণনা
সেকেন্ডের মধ্যে উইন্ডোটি নির্দিষ্ট করে যেখানে সিগন্যাল জ্যামিং পরীক্ষা করতে হবে। পরিসীমা: 1-63।
JamDetection:BusyPeriod
বিন্যাস
সেকেন্ড
বর্ণনা
JamDetection-এর মধ্যে মোট সেকেন্ডের সংখ্যা নির্দিষ্ট করে: যে JamDetection:Window RSSI অবশ্যই JamDetection:RssiThreshold উপরে থাকতে হবে। JamDetection:Window থেকে ছোট হতে হবে। পরিসীমা: 1-63।
JamDetection:Debug:HistoryBitmap
বিন্যাস
64-বিট মান
বর্ণনা
নিরীক্ষণ এবং ডিবাগিং উদ্দেশ্যে জ্যাম সনাক্তকরণ রাজ্য ইতিহাস সম্পর্কে তথ্য প্রদান করে।

উদাহরণস্বরূপ, একটি NCP-এর জন্য জ্যাম সনাক্তকরণ রাজ্য পেতে:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

একটি NCP-তে জ্যাম সনাক্তকরণ RSSI থ্রেশহোল্ড -45 dBm-এ সেট করতে:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

wpantund বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, wpantund GitHub সংগ্রহস্থল দেখুন।